![](https://csdnimg.cn/release/download_crawler_static/19970402/bg4.jpg)
选择排序思想:
选择排序(selectsorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第
二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-
1]~arr[n-1]中选取最小值,与arr[i-1]交换,…,第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到
一个按排序码从小到大排列的有序序列。
1 //选择排序算法
2 publicstaticvoidselectSort(int[]array){
3 for(inti=0;i<array.length‐1;i++){
4 intindex=i;
5 for(intj=i+1;j<array.length;j++){
6 if(array[index]>array[j]){
7 index=j;
8 }
9 }
10 if(i!=index){
11 swap(array,i,index);//l两个数交换算法
12 }
13 }
14 }
1 //两个元素交换位置
2 publicstaticvoidswap(int[]array,inti,intj){
3 array[i]^=array[j];
4 array[j]^=array[i];
5 array[i]^=array[j];
6 }
7
8 publicstaticvoidswap(int[]array,inti,intj){
9 array[i]=array[i]‐array[j];
10 array[j]=array[j]+array[i];
11 array[i]=array[j]‐array[i];
12 }
4、堆排序
堆排序基本介绍
1)堆排序是利用
堆
这种数据结构而设计的一种排序算法,堆排序是一种
选
择排
序
,
它的最
坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。
2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称
为大顶堆,
注
意
:没有要求结点的左孩子的值和右孩子的值的大小关系。
3)每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆
4)大顶堆举例说明