内部排序算法之三【选择排序】
2016-12-13 19:45
190 查看
元素个数为n的数组,需要按照由小到大的顺序进行元素排序。
1.2. 算法分析
选择排序的基本思想:每一趟排序从未排好序的部分元素中选择一个值最小的元素,然后将其与这些未排好序的元素的第一个元素交换位置。容易发现,时间复杂度为O(n^2),是不稳定排序。
1.3. 代码实现
public class SelectionSort { public static void main(String[] args) { Integer[] unSortedArr = new Integer[]{1,2,10,9,8,5,6,7,3,4}; // 每一趟,从未排序的部分选出一个最小值,然后第n个值与该最小值交换 for (int i = 0; i < unSortedArr.length - 1; i++) { int minIndex = i; for (int j = i + 1; j < unSortedArr.length; j++) { if (unSortedArr[minIndex] > unSortedArr[j]) { minIndex = j; } } // 当第i个数就是最小值时,就不用执行交换操作了 if (minIndex != i) { unSortedArr[i] = unSortedArr[i] ^ unSortedArr[minIndex]; unSortedArr[minIndex] = unSortedArr[i] ^ unSortedArr[minIndex]; unSortedArr[i] = unSortedArr[i] ^ unSortedArr[minIndex]; } } StringBuffer stringBuffer = new StringBuffer(); for (int k = 0; k < unSortedArr.length; k++) { stringBuffer.append(unSortedArr[k]).append(" "); } System.out.println(stringBuffer.toString()); } }
相关文章推荐
- 【数据结构与算法】内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 【数据结构与算法】内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 内部排序算法:直接选择排序法
- 8大内部排序算法学习笔记--(3)选择排序java实现
- 经典算法(6)- 选择排序(Selection Sort)
- 内部排序算法比较
- c# 排序 算法 函数 冒泡 选择 插入 希尔
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
- 各种内部排序方法的比较和选择
- 算法不会,尚能饭否之排序——直接选择排序
- 简单选择排序的算法实现
- python算法实践5-直接选择排序
- 算法-选择排序
- 各种内部排序方法的比较和选择
- 用JAVA实现排序算法之三:直接选择排序
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 内部排序算法比较 数据结构
- 排序的选择算法
- C#算法 选择排序
- 【C#算法】冒泡排序 选择排序 插入排序 希尔排序--转