java排序算法(插入排序,冒泡排序,选择排序)
先了解原理,然后自己跟着敲一下,加深印象
CMD编译命令:javac -encoding utf-8 SortList.java && java SortList
代码如下:
import java.util.Arrays;
public class SortList{
public static void main(String[] args){
int[] list = {1,2,8,5,6,7,6,5,10};
System.out.println(insertSort(list)); //直接排序
System.out.println(populeSort(list)); //冒泡排序
System.out.println(selectSort(list)); //冒泡排序
}
// 直接插入排序是将一个待排序的记录,插入到前面已经排好序的有序序列中去,如此反复循环,直到全部排好顺序为止。
public static String insertSort(int[] list){
int i,j;
int temp;
for (i= 1;i<list.length;i++){
j=i;
temp = list[i];
while(j>0 && temp < list[j-1]){
list[j] = list[j-1];
j--;
}
list[j] = temp;
}
return Arrays.toString(list);
}
// 冒泡排序是对相邻的元素进行两两比较,较大的数下沉,较小的数上浮,最终达到有序。
public static String populeSort(int[] list){
for(int i=1;i<list.length;i++){
for(int j = 0;j<list.length -i;j++){
if(list[j]>list[j+1]){
int temp = list[j+1];
list[j+1] = list[j];
list[j] = temp;
}
}
}
return Arrays.toString(list);
}
//简单选择排序是每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,属于不稳定排序。
public static String selectSort(int[] list){
int aIndex = 0;
for (int i= 0 ; i<list.length;i++){
aIndex = i;
for(int j=i+1; j<list.length;j++){
if(list[j]<list[aIndex]){
aIndex = j;
}
}
if (aIndex != i){
int temp = list[i];
list[aIndex] = list[i];
list[i] = temp;
}
}
return Arrays.toString(list);
}
}