选择排序(Selection Sort)
表现最稳定的排序算法之一(这个稳定不是指算法层面上的稳定哈,相信聪明的你能明白我说的意思2333),因为无论什么数据进去都是O(n²)的时 间复杂度.....所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的 最多的排序方法了吧。
算法简介
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

package cn.file_demo;
/**
* @author zdc
*
* 说明 : 选择排序
*
* 排序方法:
* 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,
* 然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
*
*/
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {7,5,3,9,5,1,4,8,2,6,0};
if(arr!=null && arr.length > 0){
// 获取数组长度
int len = arr.length;
// 定义最小值位置索引 , 临时变量
int minIndex, temp;
for (int i = 0; i < len -1; i++) {
minIndex = i;
for (int j = i+1; j <len ; j++) {
if(arr[j]<arr[minIndex]){
minIndex = j ;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp ;
}
for (int k = 0; k <arr.length ; k++) {
System.out.print(arr[k] + " ");
}
}
}
}
本文介绍了选择排序算法,它是表现稳定的排序算法,无论数据如何,时间复杂度都是O(n²),适合数据规模小的情况,且不占额外内存空间。其工作原理是在未排序序列中找最小(大)元素,依次放到排序序列起始或末尾,直至排序完成。
3667

被折叠的 条评论
为什么被折叠?



