直接插入排序
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)
相关文章推荐
- 白话经典算法系列之二 直接插入排序的三种实现
- 直接插入排序 && 折半插入排序 && 希尔排序
- 直接插入排序
- 直接插入排序
- [算法与数据结构] - No.1 直接插入排序
- 直接插入排序
- 直接插入排序
- 直接插入排序
- C++直接插入排序
- 排序3:直接插入排序
- java实现排序算法之直接插入排序
- 直接插入排序
- 直接插入排序(递归与非递归2种实现方法)
- 插入排序--直接插入排序[Java实现]
- 直接插入排序(Straight Insertion Sort)
- 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序
- 插入排序-直接插入排序
- c++学习之--排序2-直接插入排序
- 常见排序算法导读(4)[直接插入排序]
- 链表排序-直接插入排序