标签:null oid 最小值 length swap class enter code ret
简单选择算法是除堆排序的另外一种选择排序算法,其也是一种不稳定的排序算法,平均时间复杂度为O(N2),空间时间复杂度为O(1)
简单选择算法相对比较简单,并且易于理解,具体排序算法思路如下:
实现代码如下:
1 public class SelectSort { 2 3 public static void main(String[] args) { 4 int[] array = new int[]{5, 3, 6, 2, 1, 9, 4, 8, 7}; 5 SelectSort selectSort = new SelectSort(); 6 selectSort.selectSort(array); 7 for (int i = 0; i < array.length; i++) { 8 System.out.print(array[i] + " "); 9 } 10 } 11 12 public void selectSort(int[] array) { 13 if (array == null || array.length == 0) return; 14 15 for (int i = 0; i < array.length; i++) { 16 // 默认最小为i 17 int min = i; 18 // 此循环主要是选择出来最小的元素 19 for (int j = i + 1; j < array.length; j++) { 20 if (array[min] > array[j]) { 21 min = j; 22 } 23 } 24 25 // 将两个元素交换 26 if (min != i) { 27 swap(array, i, min); 28 } 29 30 } 31 } 32 33 private void swap(int[] array, int i, int j) { 34 // 有可能溢出 35 array[i] = array[i] + array[j]; 36 array[j] = array[i] - array[j]; 37 array[i] = array[i] - array[j]; 38 } 39 }
标签:null oid 最小值 length swap class enter code ret
原文地址:http://www.cnblogs.com/blogsf/p/7639395.html