您的位置:首页 > 编程语言 > Java开发

简单选择排序的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较小时.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息