选择排序
选择排序(Selection Sort)
- 概念
选择排序就是从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。它是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。好处就是不占用额外的内存空间了吧。
- 步骤
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
- Java代码实现
public class SelectionSort {
public void selectionSort(Integer arr[]){
//先判断数组元素是否只有一个以下,若只有一个就不用排序
if(arr.length<=1) return;
for(int i=0;i<arr.length-1;i++)
for(int j=i;j<arr.length-1;j++) {
if(arr[i]>arr[j+1]) {
int temp = arr[i];
arr[i] = arr[j+1];
arr[j+1]=temp;
}
}
}
public static void main(String[] args) {
Integer arr[] = {8,6,3,5,2,1};
System.out.println("排序前的数组:"+Arrays.toString(arr));
SelectionSort selectionSort = new SelectionSort();
selectionSort.selectionSort(arr);
System.out.println("排序后的数组:"+Arrays.toString(arr));
//最终输出结果:
//排序前的数组:[8, 6, 3, 5, 2, 1]
//排序后的数组:[1, 2, 3, 5, 6, 8]
}
}