#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MaxSize 50
//简单选择排序
//顾名思义,要选择。
//从无序区里面选择一个最大或最小的元素
//排入有序区内(注意:每次排进去的元素,都是有序区内最后面或者最前面的一个元素)
//(因为是该元素排入有序区之后,该元素才是剩下元素里面最小或最大的)
//(所以该元素肯定比有序区内的元素小或者是大)
void SelectSort(int A[],int n){
int i,j,min,index,temp;
for(i = 0;i<n-1;i++){ //进行n-1趟
min = A[i]; //假设A[i]是无序区里面最小的元素
for(j = i+1;j<n;j++){ //第i+1个元素和第i个元素比
if(A[j]<min){
min = A[j];
index = j;
}
if(index != i)
temp = A[index];
A[index] = A[i];
A[i] = temp; //交换
}
}
}
//总结:
//空间复杂度:O(1)
//时间复杂度:1.最好:O(n^2)
// 2.最坏:O(n^2)
// 3.平均:O(n^2)
//稳定性:不稳定
【数据结构—排序】简单选择排序
最新推荐文章于 2022-11-12 17:52:34 发布