例如:

已知数组a前半部分a[0,mid - 1],后半部分a[mid,num-1],现前半部分和后半部分均已排好序。要求:实现a数组的从小到大排序。空间复杂度为O(1).

 1 #include <iostream>
 2 using namespace std;
 3
 4 void PrintArry(int v[],int len)
 5 {
 6     for(int i = 0; i < len; i ++)
 7         cout<<v[i]<<" ";
 8     cout<<endl;
 9 }
10
11 void MergeSort(int *v, const int len, const int mid)
12 {
13     int i, temp;
14     int left = 0, right = mid;
15
16     while (left < right && right < len)
17     {
18         while (v[left] < v[right]) {
19             ++ left;
20         }
21
22         temp = v[right];
23         for(i = right; i > left ; -- i) {
24             v[i] = v[i-1];
25         }
26         v[left] = temp;
27
28         //move the current right postion
29         ++ right;
30     }
31
32 }
33
34 int main(int argc, char **argv)
35 {
36     //int arry[]={1,3,5,7,9,3,4,6,8};
37     //int arry[]={1,3,5,7,9,7,8,9,9,11};
38     //int arry[] = {0,2,4,6,8,8,9,9,1000,1,3,5,7,10,11,12,14,16,18,20,21,23,25,45,68};
39     int v[] = {100,1,3,5,7,10,11,12,14,16,18,20,21,23,25,45,68};
40     int len = sizeof(v) / sizeof(int);
41     PrintArry(v, len);
42     MergeSort(v, len, 1);
43     PrintArry(v, len);
44     return 0;
45 }

本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3400144.html,如需转载请自行联系原作者

数组前半部分和后半部分有序的全排序相关推荐

  1. 显示前半内容后半内容用省略号_作文写作指导:如何修改作文?

    作文写作指导:如何修改作文? 一.有关文章修改的名言 1.文章不厌百回改,反复推敲佳句来 2.善作不如善改 3.何其芳:古往今来,凡是文章写得好的人,大概都在修改上用过功夫. 4.叶圣陶:写完了一篇东 ...

  2. 显示前半内容后半内容用省略号_九年级语文下册第四单元写作修改润色课件新人教版...

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

  3. 显示前半内容后半内容用省略号_2015年广东中考满分作文赏析:特别的一朵花_1500字...

    阅读下面的文字并根据需要撰写 特殊的,意思是"与众不同,而不是与众不同".生活中,微笑,表情,问候:或旅行,球类运动,友谊:甚至一缕阳光 阅读下面的文字并根据需要撰写 特殊的,意思 ...

  4. 显示前半内容后半内容用省略号_德语 OCR

    文章目录 准备 添加输入法语言 德语键位 录德语 注 德语标注要求 画框规范 画框方向(标注前将文字转为正向) 框的上下界点问题 框的形式要求(贴字而不压字) 属性介绍 文字模糊的情况 一行中部分模糊 ...

  5. 微信小程序向原数组添加数组 前增加、后增加、删除、数组转字符串、字符串转数组

    this.data.list 是原来的数组: newarray 要添加的数据: concat() 向原数组追加方法: 数组开头追加 this.setData({list: newarray.conca ...

  6. 顺序表前m和后n元素交换位置

    系列目录: 左右移动(旋转)数组元素 查找两个升序数组的中间数 判断数组的某一个元素的数量是否超过了整个数组数量的一半 合并两个有序表到新的有序表 文图介绍 A 1 2 3 4 设前m为1,后n为3. ...

  7. 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。

    输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分. 我们首先会想到常规方法:创建一个临时数组,遍历所给数组中的所有元素,将偶数 ...

  8. 数据蒋堂 | “后半”有序的分组

    作者:蒋步星 来源:数据蒋堂 本文共1600字,建议阅读7分钟. 我们是否可以利用"后半"有序的特点提高性能呢? 上一期我们说了前半有序的数据,这次我们来看看"后半&qu ...

  9. java 二维数组奇数金字塔_调整数组顺序使得奇数在前偶数在后(Java)

    /* 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. */ //使用额外数组时 ...

  10. “世界很美好,值得你为之奋斗”我只同意后半句。

    本文转载自 http://www.seanyxie.com/世界很美好,值得你为之奋斗我只同意后半句/ [感谢作者,看完此文,感慨良多,将此文放在这,希望它能够时时提醒我,我该去奋斗了] 文/陈亚豪 ...

最新文章

  1. web11 Struts处理表单数据
  2. 精选26个Python实用技巧,想秀技能先Get这份技术列表!
  3. c++——结构与指针 类与指针
  4. Java锁机制(一)synchronized
  5. Transformer结构详解(有图,有细节)
  6. 【Python】图解Pandas的宝藏函数:assign
  7. ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程
  8. 下一代对话系统中的关键技术(下篇)
  9. 【渝粤教育】 国家开放大学2020年春季 1366英语教学理论与实践 参考试题
  10. Daily Scrum02 12.03
  11. 设置Discuz 7论坛游客可以查看图片,但不能下载附件.
  12. 基于springboot+thymeleaf+mybatis的员工管理系统 —— 登录与注册
  13. 5不能另存为dwg_5.建立数模
  14. CSDN学院全面改版啦!这次真的“搞大”了!
  15. 160505、oracle 修改字符集 修改为ZHS16GBK
  16. HashSet、LinkedHashSet、TreeSet的内部实现简介
  17. 最牛逼android上的图表库MpChart(二) 折线图
  18. 源代码加密程序:.NET Reactor使用教程
  19. 《分布式机器学习:算法、理论与实践》
  20. NXP TJA1040, TJA1042, TJA1050 TJA1051, TJA1057, TJA1044, TJA1055区别

热门文章

  1. 查看字符串的编码chardet
  2. VC 2010 Express下安装OpenCV2.4.4 遇到的问题
  3. 解决摹客iDoc插件在Sketch中无法正常使用,切图和标注尺寸不一致的问题
  4. macOS 12 Monterey实用功能
  5. Mac技巧:如何使用macOS Big Sur中“通知中心”的小组件?
  6. sessionStorage跨标签取值
  7. 目前最完整的前端框架 Vue.js 全面介绍
  8. myeclipse打开JSP电脑很卡,CPU使用率90%以上
  9. 九大最新热门IT技术 把把都是双刃剑
  10. BMW M550i xDrive