java数组排序 java数组常见几种排序方法

编辑:
发布时间: 2020-12-12 23:07:20
分享:

Java中几种常见的排序方法

1.冒泡排序

/**

* 对指定的数组进行排序 把最小的排出来,然后再排第二小的。。。。

*

* @param arr

* 要排序的数组

* @return 返回排序之后的数组

*/

public int[] maopao {//int[] :返回值类型

for {

for {//第i个与第i+1个比较再与第i+2个比较

if {

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;//把最小的比出来放在最前面

}// end if

}// end for{}

}// end for{ {} }

return arr;

}// end int[] mapao

2.选择排序

每一趟从待排序的数据元素中选择最小的一个元素,顺序放在已排序好的数列的最后,知道全部排完:

/**

* 我怎么感觉和那个冒泡排序没什么区别啊? 选择排序

*

* @param arr

* @return

*/

public int[] xuanze {//int[] :返回值类型

for {

int lowerindex = i;

// 找出最小值的索引

for {

if {

lowerindex = j;

}//end if

}//end for{}

// 交换

int temp = arr[i];

arr[i] = arr[lowerindex];

arr[lowerindex] = temp;

}//end for{ {} }

return arr;

}//end int[] xuanze

选择排序示例:

初始关键字 [49 38 65 97 76 13 27 49]

第一趟排序后 13 [38 65 97 76 49 27 49] //直接把13取出来

第二趟排序后 13 27 [65 97 76 49 38 49] //再把27取出

第三趟排序后 13 27 38 [97 76 49 65 49]

第四趟排序后 13 27 38 49 [76 97 65 49 ]

第五趟排序后 13 27 38 49 49 [97 65 76]

第六趟排序后 13 27 38 49 49 65 [97 76]

第七趟排序后 13 27 38 49 49 65 76 [97]

最后排序结果 13 27 38 49 49 65 76 97

3.插入排序

将一个数据插入到已经排好序的有序数据中,从而得到一个新的,个数加一的有序数据:

/**

* 插入排序

*

* @param arr

* @return

*/

public int[] charu {// int[] :返回值类型

for {

for {

if {// 与自己前面的比较

int temp = arr[j];// 交换

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

arr[j - 1] = temp;

}// end if

}// end for{}

}// end for for

return arr;

}// end int[]charu

插入排序示例:

4.希尔排序

插入排序的一种;

/**

* 希尔排序

*

* @param arr

* @return

*/

public int[] shell {

// 分组

for {

// 每个组内排序

for {

int temp = arr[i];

int j = 0;

for {

if {

arr[j] = arr[i - increment];

} else {

break;

}// end if

}// end for{}

arr[j] = temp;

}// end for for{}

}// end for for for{}

return arr;

}// end shell{}

相关阅读
热门精选
孩子 皮肤