【排序算法】选择排序

来源:互联网 发布:微商加粉软件免费下载 编辑:程序博客网 时间:2024/06/01 07:54
package sort.algorithm.select;public class Select{// 选择排序的最差情况运行时间是O(n^2)public static void selectionSort(int[] data){int length = data.length;int max;int temp;for (int i = 0; i < length; i++){max = 0;for (int j = 1; j < length-i; j++){if (data[max] < data[j]){max = j;}}temp = data[max];data[max] = data[length-i-1];data[length-i-1] = temp;}}/** * 前置条件是:data至少有n个从data[first]开始的单元 * @param data * @param first * @param n */public static void selectionSort(int[] data, int first, int n){int big;int temp;int i, j;for (i = n-1; i > 0; i--) {big = first;for (j = first+1; j <= first+i; j++){if (data[big] < data[j]){big = j;}}temp = data[big];data[big] = data[first+i];data[first+i] = temp;}}public static void main(String[] args){int data[] = {80, 30, 60, 50, 40, 70, 20, 10, 5, 0};selectionSort(data, 0 , 10);for (int i = 0; i < data.length; i++){System.out.print(data[i] + ",");}}}

运行结果:

0,5,10,20,30,40,50,60,70,80,


0 0
原创粉丝点击