java排序算法(二):直接选择排序
一、基本概念
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换),然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
二、算法特点
是否稳定: false
平均时间复杂度:O(n^2)
最差时间复杂度:O(n^2)
最优时间复杂度:O(n^2)
package zhijieChooseSort;
import javax.xml.transform.Templates;
public class ChooseSort {
public static void main(String[] args) {
ChooseSort chooseSort = new ChooseSort();
int[] data={56,4,45,4,333,44,2,5,9};
chooseSort.display(data);
chooseSort.chooseSort(data);
}
//选择排序
public void chooseSort(int[] data){
for(int k=0;k<data.length;k++){
int min=k;
//找到后面未排序数据中最小的哪个数
for(int i=k;i<data.length;i++){
if(data[min]>data[i]){
min =i;
}
}
//将待排序的书中最小的数和待排序的第一个数做交换
int temp =data[k];
data[k] = data[min];
data[min] = temp;
}
display(data);
}
public void display(int[] data){
for(int d:data){
System.out.print(d+" ");
}
System.out.println();
}
}