设为首页 加入收藏

TOP

C++插入排序之二路插入(环与非环的比较)
2015-11-21 01:01:14 来源: 作者: 【 】 浏览:1
Tags:插入 排序 之二 比较
#include 
   
     using namespace std; void Grial(int a[],int n) { int i,j; i=j=0; int b[n]; b[0]=a[i]; int k; for(k=1;k
    
     a[k]) { b[(j-1+n)%n]=a[k]; j=(j-1+n)%n; } else { i++; int m; for(m = i;b[m-1]>a[k];m--) { b[(m+n)%n] = b[(m-1+n)%n]; } b[(m+n)%n]=a[k]; } } i++; k = 0; do { a[k++]=b[(i)%n]; i++; }while(i%n!=j); } int main() { int a[]={10,4,2,5,88,1,23}; Grial(a,7); for(int i=0;i<7;i++) { cout<
     
       using namespace std; //2路插入排序. void Grial(int a[],int n) { int i; int j; int b[n];//新开辟的空间用来排序. b[0]=a[0]; i=1; j=n-1; int k; for(k=1;k
      
       (n-j)?1:-1;//比较左边的长度与右边的长度,如果左边的大,则flag记1,else记-1. if(a[k]>b[i-1]) { b[i]=a[k]; i++; } else if(a[k]
       
        b[m+1]) b[m]=b[m+1]; else { b[m]=a[k]; break; } } j--; } else { int m; for(m = i; b[m-1]>a[k] && m>0;m--) { b[m]=b[m-1]; } b[m]=a[k]; i++; } } j = i; k=0; do{ a[k++]=b[(i+n)%n]; i++; }while((i%n)!=j); } int main() { int a[]={2,4,77,3,1,6,3,10,8,-1}; Grial(a,10); for(int i=0;i<10;i++) { cout<
        
       
      
     
    
   
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 3234 异或(加权并查集) 下一篇UVA - 11709 Trust groups (强连..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: