选择排序
2012-07-29 13:17 coodoing 阅读(231) 评论(0) 编辑 收藏 举报1、算法原理介绍:
选择排序思路,第一趟排序:从n个数中选择最小的1个放在第一个位置,第二趟:从剩下的n-1个数中选择一个最小的数放在第2个位置,依次类推。冒泡排序是比较相邻的交换相邻的,而选择排序不是。
2、可视化操作:
3、java代码
1: static void selectionSort(int[] arr,int len)
2: {
3: int j;
4: for(int i=0;i<len;i++)
5: {
6: j = getMinKey(arr,i);
7: if(i!=j)
8: swap(arr,j,i);
9: }
10: }
11:
12: static int getMinKey(int[] arr,int start)
13: {
14: int min = start;
15: for(int i =start+1;i<arr.length;i++)
16: {
17: if(arr[min]>;arr[i])
18: min = i;
19: }
20: return min;
21: }
4、时间复杂度
最佳,平均,最坏时间复杂度为:O(n^2)
共需n-1次数据交换