【排序算法】持续更新中...
【排序算法】插入排序(Insert Sort)_萌小崔的博客-CSDN博客
【排序算法】希尔排序(shell Sort)_萌小崔的博客-CSDN博客
【排序算法 】快速排序(Quick Sort)_萌小崔的博客-CSDN博客
【排序算法】快速排序(Quick Sort)_优化版_萌小崔的博客-CSDN博客
【排序算法】优化版冒泡排序(Bubble Sort)_萌小崔的博客-CSDN博客
【排序算法】归并排序(Java-递归版)_萌小崔的博客-CSDN博客
【排序算法】选择排序(Select Sort)
(适用于规模较小的,不占用额外内存空间)
算法步骤
不断从未排序序列中找寻最大(最小)元素,存放到已排序的起始位置,直到所有元素均排序完毕
public static int[] SelectSort(int[] arr,boolean reverse){
// 总共要经过 N-1 轮比较
for (int i = 0; i < arr.length-1; i++) {
int min = i;
// 每轮需要比较的次数 N-i
for (int j = i+1; j < arr.length; j++) {
// 记录目前能找到的最小值元素的下标
if(reverse?arr[min]>arr[j]:arr[min]<arr[j]){
min=j;
}
}
// 将找到的最小值和i位置所在的值进行交换
if(i!=min){
arr[i] ^=arr[min];
arr[min] ^=arr[i];
arr[i] ^=arr[min];
}
}
return arr;
}