您的位置:首页 > 其它

三个简单的排序方法

2017-09-16 16:31 190 查看
回顾下之前学过的排序算法,三种简单排序

#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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: