您的位置:首页 > 其它

8种排序算法--直接选择排序

2013-08-23 17:53 225 查看
直接选择排:这种排序思想。直接选择排序顾名思义:就是重一堆中每次取出最大数(或者最小数)依次排列:

有这么一组数:9 1 5 4 8 7 4 6 6

采用选择排序是这么的:

第1次 1 9 5 4 8 7 4 6 6 首先重开始的里面选择最小的,交换位置

第2次 1 4 5 9 8 7 4 6 6 接着又从上面黑色数字里面选最小的

第3次 1 4 4 9 8 7 5 6 6 重复

第4次 1 4 4 58 7 9 6 6

第5次 1 4 4 56 7 9 8 6

第6次 1 4 4 5 6 6 9 8 7

第7次 1 4 4 56 6 7 8 9

第8次 1 4 4 5 6 6 7 8 9

下面看看代码实现:

packagecom.fish.sort;

public class SelectSort {

public static void main(String[] args) {

// 将九个数进行排序

int[] array = { 9, 1, 5, 4, 8, 7, 4, 6, 6 };

// 排序

myResult(array);

}

public static void myResult(int[] array) {

int minIndex, swap;//用一个minindex记住最小的值的索引

for (int i = 0; i < array.length - 1; i++) {

minIndex = i;

for (int j = i + 1; j < array.length; j++) {

if (array[minIndex] > array[j]) {

minIndex = j;//获取最小值索引的方法

}

}

if (i != minIndex) {//如果索引变化了说明原先不是最小值相互想换位置

swap = array[i];

array[i] = array[minIndex];

array[minIndex] = swap;

}

}

System.out.println("结果是:");

for (int i = 0; i < array.length; i++) {

System.out.print(array[i] + " ");

}

}

}

这种排序时间算法复杂度是n^2 空间复杂度为1 是不稳定的排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: