回顾下之前学过的排序算法,三种简单排序
#include<cstdio>
#include<cstring>
#include<cmath>
int a[5] = {3,5,1,4,2};
void xzsort(int *a,int length){
for(int i= 0;i<length ;i++){
int min = a[i];
int flag = i;
int temp;
for(int j = i+1 ;j<length ;j++){
if(a[j]<min){
min = a[j];
flag = j ;
}
}
temp = a[i];
a[i] = min;
a[flag] = temp;
}
printf("选择排序时间复杂度O(n2),稳定排序");
}
void mpsort(int *a,int length){
for(int i=0 ;i<length-1; i++){
for(int j=0 ; j<length-1-i ; j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("冒泡排序时间复杂度O(n2),稳定排序");
}
void crsort(int *a,int length){
for(int i=1 ;i<length ; i++){
int j = i;
while( j && a[j]<a[j-1]){
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
j--;
}
}
printf("插入排序时间复杂度O(n2),稳定排序");
}
void print(int *a,int length){
for(int i=0 ;i<length ;i++)
printf("%d,",a[i]);
}
int main(){
//选择排序
crsort(a,5);
print(a,5);
}