简单选择排序的Java实现、性能分析以及适用场景
2017-08-16 21:43
696 查看
1.简单选择排序的Java实现:
代码如下:package com.zm.testSort; public class SelectSort { public static void getSelectSort(int[] a) { if(a == null || a.length == 0) {//判断数组是否为空 System.out.println("该数组为空!"); return; } int n = a.length; int temp; for(int i = 0; i < n-1; i++) {//每一趟都从i到n-1里找到一个最小的值,与i所在的值交换 int min = i;//记录最小的值的索引 for(int j = i+1; j < n; j++) { if(a[j] < a[min]) { min = j; } } if(min != i) {//如果相等,就无需交换 temp = a[min]; a[min] = a[i]; a[i] = temp; } } } public static void main(String[] args) { int[] a = {3, 5, 1, 2, 6, 4, 7, 11, 23, 44, 3, 34, 8, 23, 6, 9}; getSelectSort(a); System.out.print("简单选择排序:"); for(int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } } }
2.简单选择排序的性能分析:
时间复杂度:1. 最好情况:O(n^2)
2. 平均情况:O(n^2)
3. 最坏情况:O(n^2)
空间复杂度:O(1)
稳定性:不稳定(相同元素的相对位置会改变)
3.适用场景
3.1:当n <= 50时,适合适用简单选择排序和直接插入排序,如果元素包含的内容过大,简单选择排序更合适.3.2:简单选择排序适合用于n较小时.
相关文章推荐
- 堆排序的Java实现、性能分析以及适用场景
- 直接插入排序的Java实现、性能分析以及适用场景
- 冒泡排序的Java实现、性能分析以及适用场景
- 归并排序的Java实现、性能分析以及适用场景
- 希尔排序的Java实现、性能分析以及适用场景
- 冒泡排序、选择排序、插入排序、快速排序算法的时间性能分析(java实现)
- java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序
- 选择排序原理分析及Java实现
- 简单排序的Java实现与效率分析
- 一步步学习数据结构和算法之选择排序效率分析及java实现
- java实现七种排序 (插入排序, 希尔排序, 插入排序, 快速排序, 简单选择排序, 堆排序, 归并排序)
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- JAVA实现简单的冒泡排序与选择排序
- Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)
- Java遍历集合方法分析(实现原理、算法性能、适用场合)
- 堆排序的java简单实现以及讲解
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- 用java实现简单选择排序的动态演示
- Java遍历集合方法分析(实现原理、算法性能、适用场合)
- 选择,插入,希尔,快速,堆,归并排序六种排序方式的Java 实现和性能对比(付代码)