选择排序(Selection sort)是一种简单直观的[排序算法]它的工作原理是每一次从待排序的中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
最坏的运行的时间为Θ(n^2)
与冒泡排序相比,少了相邻的数组的交换,只是从剩余数组得到最小的元素与固定的位置进行交换。
代码如下
/**
* @Project: dataStructure
* @description: 选择排序
* @author: sunkang
* @create: 2018-08-19 21:50
* @ModificationHistory who when What
**/
public class SelectSort {
/**
* 选择排序
* 就是在剩余的数组中找到最小的元素插入到指定的数组中
* @param arr
* @return
*/
public Integer[] selectSort(Integer[] arr){
for(int i = 0;i <arr.length -1 ;i++){
int min = i;
for( int j = i+1;j<arr.length;j++){
if( arr[j]<arr[min]){
min = j;
}
}
//交换
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
return arr;
}
public void display(Integer[] arr){
for(Integer in:arr){
System.out.print(in+",");
}
System.out.println();
}
public static void main(String[] args) {
Integer[] arr = new Integer[]{1,2,7,4,3,9};
SelectSort selectSort = new SelectSort();
Integer[] newArr = selectSort.selectSort(arr);
selectSort.display(newArr);
}
}