二分法插入排序

来源:互联网 发布:香港记者跑的快 知乎 编辑:程序博客网 时间:2024/05/17 21:05
/*二分插入排序算法的时间复杂度为O(n^2)它为稳定的排序算法*/#include <stdio.h>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;right=i-1;temp=sum[i];while(left<=right){mid=(left+right)/2;if(sum[mid]>temp)//小于取左边{right=mid-1;}else//大于取右边{left=mid+1;}}for(j=i-1;j>=left;j--){sum[j+1]=sum[j];}sum[left]=temp;}for(i=1;i<=n;i++)printf("%d ",sum[i]);printf("\n");return 0;}


原创粉丝点击