简单排序
简单排序又叫简单选择排序
SimpleSelectSort
要求:从小到大排序
原理:在数组中n个元素中比较得到最小值,放在第一位;然后比较剩下的n-1个元素,得到最小值,放在第二位;再比较剩下的n-2个元素,得到最小值,放在第三位,以此类推,完成排序。
public class SimpleSelectSort {
public static void main(String[] args) {
int[] array=new int[]{2,1,4,5,3,6,9,7,8};
System.out.println("排序前:"+Arrays.toString(array));
System.out.println("排序后:"+Arrays.toString(sort(array)));
}
/*原理:
从第一个值开始,比较所有元素得到最小值,交换位置,将最小值放在list[1]
第一个值已确定,再从第二个值开始,比较剩下的所有元素得到最小值,交换位置,将最小值放在list[2]
前两个值已确定,再从第三个值开始,比较剩下的所有元素...以此类推,最终完成排序。
*/
private static int[] sort(int[] list){
if (list!=null&& list.length>1){
for (int i=0;i<list.length-1;i++){
int min=i;
// for遍历剩下的所有元素,寻找到 最小值 ,并记录下标,
// 往往有多个值小于list[min],所以不能一旦有小于list[min]的值就交换位置,
// 我们要找的是最小值,最小值
for (int j=i+1;j<=list.length-1;j++){
if (list[j]<list[min]){
min=j;
}
// 次循环完成以后,可以得到最小值的小标
}
// list[i] 和 list[min]交换位置
if (min!=i){
int temp=list[i];
list[i]=list[min];
list[min]=temp;
}
}
return list;
}else return null;
}
}
=======================================================
结果: