您的位置:首页 > 其它

直接插入排序

2018-01-14 17:15 302 查看
#include<iostream>
#include<cstdio>
#include<malloc.h>

#define MAXSIZE 100

typedef struct{
int *r;
int length;
}SqList;

void InitSqList(SqList &L){
L.r=(int *)malloc(MAXSIZE*sizeof(int));
int i=1,m;
L.length=0;
while(scanf("%d",&m)!=EOF){
L.r[i++]=m;
L.length++;
}
}

void InsertSort(SqList &L){
int j;
for(int i=2;i<=L.length;i++){
if(L.r[i]<L.r[i-1]){
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];
for(j=i-2;L.r[0]<L.r[j];j--){
L.r[j+1]=L.r[j];
}
L.r[j+1]=L.r[0];
}
}
}

int main(){
SqList T;
InitSqList(T);
InsertSort(T);
for(int i=1;i<=T.length;i++){
printf("%d ",T.r[i]);
}
}

注意:数组定义成*r型要先分配空间L.r=(int *)malloc(MAXSIZE*sizeof(int));后才可以使用

时间复杂度为O(n^2)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: