java 排序算法实现 其三:直接选择排序

时间:2022-10-16 22:09:22


直接选择排序是最容易理解的排序方式,但也是时间复杂度比较高的排序方式。


其基本思想是:第i轮循环,从未排序的数字中选择最小的,然后将它与i位置上的数交换


第0次: 3  6  5  7  4  1  2 

第1次: 1  6  5  7  4  3  2  

第2次: 1  2  5  7  4  3  6  

第3次: 1  2  3  7  4  5  6  

第4次: 1  2  3  4  7  5  6  

第5次: 1  2  3  4  5  7  6  

第6次: 1  2  3  4  5  6  7  



具体的代码如下:

/**
* 直接选择排序
* @param args
*/
private static void selectSort(int[] arr){
for(int i=0; i<arr.length-1; i++){
int flag = i;
for(int j=i+1; j<arr.length; j++){
if(arr[j] < arr[flag]){
flag = j;
}
}
int temp = arr[i];
arr[i] = arr[flag];
arr[flag] = temp;
}
}