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) 编辑 收藏 举报