您的位置:首页 > 其它

经典排序算法——选择排序

2018-02-05 09:38 190 查看
public class ChoosSort {
public  static  int[] selection_sort(int[] arr){
int i, j, min, temp, len = arr.length;
for (i = 0; i < len - 1; i++) {
//假定当前下标的数值为最小值
min = i;
for (j = i + 1; j < len; j++){
//依次与后一位进行比较,一直找到后续队列中最小的数值,并获得它的下标值,并设置为最小值
if (arr[min] > arr[j])
min = j;
}
//将当前的值与后续队列中找到的最小数值进行交换,再进行下一轮循环
temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
System.out.println(Arrays.toString(arr));
}
return arr;
}

public static void main(String[] args) {
//对于有序数组,依旧进行同样数量级的比较,时间复杂度为O(n^2)
int[] arr={9,8,7,6,5,4,3,2,1};
selection_sort(arr);
System.out.println("---------------------");
//对于有序数组,依旧进行同样数量级的比较,时间复杂度为O(n^2),有优化空间
int[] arr2={1,2,3,4,5,6,7,8,9};
selection_sort(arr2);

}
}
[1, 8, 7, 6, 5, 4, 3, 2, 9]
[1, 2, 7, 6, 5, 4, 3, 8, 9]
[1, 2, 3, 6, 5, 4, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
---------------------
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: