成都网站建设设计

将想法与焦点和您一起共享

插入排序代码java 各种排序代码

Java几种简单的排序源代码

给你介绍4种排序方法及源码,供参考

创新互联2013年开创至今,先为昌都等服务建站,昌都等地企业,进行企业商务咨询服务。为昌都企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1.冒泡排序

主要思路: 从前往后依次交换两个相邻的元素,大的交换到后面,这样每次大的数据就到后面,每一次遍历,最大的数据到达最后面,时间复杂度是O(n^2)。

public static void bubbleSort(int[] arr){

for(int i =0; i  arr.length - 1; i++){

for(int j=0; j  arr.length-1; j++){

if(arr[j]  arr[j+1]){

arr[j] = arr[j]^arr[j+1];

arr[j+1] = arr[j]^arr[j+1];

arr[j] = arr[j]^arr[j+1];

}

}

}

}

2.选择排序

主要思路:每次遍历序列,从中选取最小的元素放到最前面,n次选择后,前面就都是最小元素的排列了,时间复杂度是O(n^2)。

public static void selectSort(int[] arr){

for(int i = 0; i arr.length -1; i++){

for(int j = i+1; j  arr.length; j++){

if(arr[j]  arr[i]){

arr[j] = arr[j]^arr[i];

arr[i] = arr[j]^arr[i];

arr[j] = arr[j]^arr[i];

}

}

}

}

3.插入排序

主要思路:使用了两层嵌套循环,逐个处理待排序的记录。每个记录与前面已经排好序的记录序列进行比较,并将其插入到合适的位置,时间复杂度是O(n^2)。

public static void insertionSort(int[] arr){

int j;

for(int p = 1; p  arr.length; p++){

int temp = arr[p];   //保存要插入的数据

//将无序中的数和前面有序的数据相比,将比它大的数,向后移动

for(j=p; j0  temp arr[j-1]; j--){

arr[j] = arr[j-1];

}

//正确的位置设置成保存的数据

arr[j] = temp;

}

}

4.希尔排序

主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长,当步长为1的时候完成一次插入排序,  希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)

public static void shellSort(int[] arr){

int j ;

for(int gap = arr.length/2; gap  0 ; gap/=2){

for(int i = gap; i  arr.length; i++){

int temp = arr[i];

for(j = i; j=gap  temparr[j-gap]; j-=gap){

arr[j] = arr[j-gap];

}

arr[j] = temp;

}

}

}

JAVA实现插入排序

public class Test {

public static void main(String[] args) {

int[] source = { 1, 3, 2, 5, 12, 3, 123, 23, 2, 541, 1, 76, 76 };

Test test = new Test();

test.printArray(source);

test.insertSort(source);

test.printArray(source);

}

public void insertSort(int[] source) {

for (int i = 1; i source.length; i++) {

for (int j = i; (j 0) (source[j] source[j - 1]); j--) {

swap(source, j, j - 1);

}

}

printArray(source);// 输出插入排序后的数组值

}

private void swap(int[] source, int x, int y) {

int temp = source[x];

source[x] = source[y];

source[y] = temp;

}

public void printArray(int[] source) {

for (int i : source) {

System.out.print(i + " ");

}

System.out.println();

}

}

Java插入排序

Java程序入口是main函数,

而main函数的参数必须是String[] args;

所以你要把函数名mian改成其他如sort,并新写一个main函数来调用他。

public static void main(String[] args){

}

java实现一个插入排序 排序算法写在一个方法里面 基础数据用数组保存 求代码。。。急啊

public class InsertSort

{

static final int SIZE=10;

static void insertionSort(int[] a)                  //插入排序

{

int i,j,t,h;

for (i=1;ia.length;i++)

{

t=a[i];

j=i-1;

while(j=0  ta[j])

{

a[j+1]=a[j];

j--;

}

a[j+1]=t;

System.out.print("第"+i+"步排序结果:");           //输出每步排序的结果

for(h=0;ha.length;h++)

{

System.out.print(" "+a[h]);             //输出

}

System.out.print("\n");

}

}

public static void main(String[] args)

{

int[] shuzu=new int[SIZE];

int i;

for(i=0;iSIZE;i++)

{

shuzu[i]=(int)(100+Math.random()*(100+1));          //初始化数组

}

System.out.print("排序前的数组为:\n");             //输出排序前的数组

for(i=0;iSIZE;i++)

{

System.out.print(shuzu[i]+" ");

}

System.out.print("\n");

insertionSort(shuzu);                   //排序操作

System.out.print("排序后的数组为:\n");

for(i=0;iSIZE;i++)

{

System.out.print(shuzu[i]+" ");                 //输出排序后的数组

}

System.out.print("\n");

}

}


网页名称:插入排序代码java 各种排序代码
分享路径:http://chengdu.cdxwcx.cn/article/docppph.html