给一个数组,从小到大排序;
1.平均时间复杂度O(n2),
2.基本思想:从数组里找到最小的一个数,放在零的位置;然后从剩下的无序数组里找到最小的数放在第二个位置,依次类推;
3.过程:遍历数组,让最小的位置为零,然后从数组中,找到最小的数所在的位置;遍历完成后,如果最小的数所在的位置和零不一样,交换最小的数和第零位置上的数;
然后让最小的位置为一,依次类推;
4.代码:
public void selectSort(int[] array, int length) { //遍历数组 for(int i = 0; i < length; i++) { //初始化最小数的位置 int minIndex = i; //找到最小数的位置,记录为minIndex for(int j = i + 1; j < length; j++) { if(array[j] < array[minIndex]) { minIndex = j; } } //对比最小数位置和遍历的位置,如果不相同,交换数字; if(minIndex != i) { int temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } } }