java选择排序

 1 /**
 2  *原理:从无序表a[n]从a[0]到a[n-1]查找出最小值,与第一个元素对调,
 3  *然后再除去首个元素,对a[1]~a[n-1]排序,循环n-1次生成有续表。
 4  *
 5  *时间复杂度:
 6  *平均情况:O(n^2);
 7  *最好情况:O(n^2);
 8  *最坏情况:O(n^2)。
 9  *
10  *稳定性:不稳定(插入排序一般都不稳定,如堆排序)
11  * */
12 
13 public class 选择排序 {
14 
15     public int[] selectSort(int[] a, int n) {
16         for (int i = 0; i < n - 1; i++) {
17             int k = i;
18             for (int j = i; j < n; j++) {
19                 if (a[k] > a[j])
20                     k = j;
21             }
22             int x = a[i];
23             a[i] = a[k];
24             a[k] = x;
25         }
26         return a;
27     }
28 
29     /**
30      * @param args
31      */
32     public static void main(String[] args) {
33         // TODO Auto-generated method stub
34         int[] a = new int[] { 25, 56, 32, 20, 1, 5, 89, 3, 8, 41 };
35         选择排序 sort = new 选择排序();
36         sort.selectSort(a, a.length);
37         for (int i = 0; i < a.length; i++) {
38             System.out.print(a[i] + " ");
39         }
40     }
41 }

 

posted on 2013-10-11 13:11  tianyuanshgan  阅读(155)  评论(0编辑  收藏  举报

导航