1089. Insert or Merge (25)
来源:互联网 发布:怎么在淘宝商城开店 编辑:程序博客网 时间:2024/05/16 16:59
1089. Insert or Merge (25)
注:存在等值数据
#include <stdio.h>#include <stdlib.h>int n,b[101],a[101];int comp(const void*a,const void*b){ return *((int*)a)-*((int*)b);}int juge(int s,int e){ if(s>=e)return 1; while(s<e&&a[s]<a[s+1])++s; return s==e;}int main(){ scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&b[i]); for(int i=1;i<=n;++i) scanf("%d",&a[i]); int step=2,ismerge=0; while(1) { int s=1; while(s+step-1<=n&&juge(s,s+step-1)) s+=step; if(s+step-1<=n)break; if(juge(s,n)&&step==2) ismerge=1; step*=2; } if(ismerge) { printf("Merge Sort\n"); int i=1; while(i+step-1<=n) { qsort(&a[i],step,sizeof(int),comp); i+=step; } if(i<=n) qsort(&a[i],n-i+1,sizeof(int),comp); } else { printf("Insertion Sort\n"); int i=1,k; while(i<n&&a[i]<=a[i+1])++i; qsort(&a[1],i+1,sizeof(int),comp); } for(int i=1;i<=n;++i) { printf("%d",a[i]); if(i!=n)printf(" "); } return 0;}
0 0
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- 1089. Insert or Merge (25)
- LeetCode205—Isomorphic Strings
- log4j2的配置使用
- 位运算(整理)
- leetcode347
- Java中继承的使用
- 1089. Insert or Merge (25)
- super关键字
- 增加mono内存的代码
- 注册OCX控件
- Java Annotation
- Java笔记 - 集合(Collections)
- CT之Haar-like&&积分图
- 追加class属性值
- linux自动删除最老的几个文件