![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
各种排序算法
dtwd886
这个作者很懒,什么都没留下…
展开
-
直接插入排序算法-设置哨兵版
/*直接插入排序算法的时间复杂度为O(n^2),它是稳定的排序算法*/#include int sum[1000];int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&sum[i]); } for(i=2;i<=n;i++) { sum[0]=sum[i]; //设置哨兵原创 2017-07-18 18:11:18 · 1521 阅读 · 0 评论 -
直接插入排序算法-不设置哨兵版
/*直接插入排序算法的时间复杂度为O(n^2), 它是稳定的排序算法*/#include int a[1000];int main(){ int n,i,j,temp; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } for(i=2;i<=n;i++) { j=i-1; temp=a[i];原创 2017-07-18 18:19:36 · 481 阅读 · 0 评论 -
二分法插入排序
/*二分插入排序算法的时间复杂度为O(n^2)它为稳定的排序算法*/#include int sum[1010];int main(){ int n,i,j,left,right,mid,temp; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&sum[i]); for(i=2;i<=n;i++) { left=1;原创 2017-07-18 18:42:54 · 270 阅读 · 0 评论 -
shell插入排序算法
/*shell插入排序算法的平均时间复杂度为O(n^1.3),它为不稳定排序算法,d为每次所分组数(初始为n/2)。*/#include int sum[1010];int main(){ int n,i,j,d,temp; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&sum[i]); } d=n/2; whil原创 2017-07-18 22:28:08 · 290 阅读 · 0 评论 -
直接选择排序算法
/*直接选择排序算法的时间复杂度为O(n^2),它是不稳定的排序算法。*/#include int sum[1100];int main(){ int n,i,j,k,temp; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&sum[i]); } for(i=1;i<n;i++) { k=i; for(j=原创 2017-07-19 17:26:51 · 307 阅读 · 0 评论 -
堆排序
/*堆排序算法的时间复杂度为O(n*log2n),它为不稳定排序算法,从小到大排序建的堆为大根堆。*/#include int sum[1100];void shift(int k,int len) //建堆的函数{ int i,j,flag,temp; i=k; j=2*k; temp=sum[k]; flag=1; while(j<=len&&flag) {原创 2017-07-19 18:41:06 · 160 阅读 · 0 评论 -
冒泡排序算法
/*冒泡排序算法的复杂度是O(n^2),它是一种稳定的排序算法。*/#include int sum[1010];int main(){ int i,j,flag,temp; int n; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&sum[i]); } i=1; flag=1; while(i<n&&fla原创 2017-07-19 21:59:51 · 139 阅读 · 0 评论 -
快速排序算法
/*快速排序算法的时间复杂度为O(n*log2n),它为不稳定的排序算法。*/#include void QSort(int sum[],int left,int right){ int i,j,temp; if(left<right) { i=left; j=right; temp=sum[i]; do { while(temp<sum[j]&&i<j原创 2017-07-19 22:40:26 · 168 阅读 · 0 评论