数组前半部分和后半部分有序的全排序
时间:2022-04-22
本文章向大家介绍数组前半部分和后半部分有序的全排序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
例如:
已知数组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 }
- 通过shell来比较oracle和java中的字符串使用(r4笔记第49天)
- Java 单例以及单例所引发的思考
- AJAX跨域完全讲解
- 最简单的web服务器实现(一)(r4笔记第68天)
- 算法09 五大查找之:哈希查找
- JSP面试题都在这里
- Java基础-07(01).总结private,this,封装,static,成员方法变量,局部变量匿名对象
- HTTP就是这么简单
- 重温二分查找算法(r4笔记第66天)
- 【不用框架】文件上传和下载
- JSP第七篇【简单标签、应用、DynamicAttribute接口】
- Java基础-07(02).总结private,this,封装,static,成员方法变量,局部变量匿名对象
- 通过shell脚本快速定位active session问题(r4笔记第65天)
- 01 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之业务分析与DAO层
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Kotlin拓展函数的真身
- 一个一年没解决的ClassNotFoundException|类加载机制探索
- 我有个大胆的方案可以提高ARouter和WMRouter的编译速度
- Tornado模板对空白字符的处理与解决方案
- View的有效曝光监控(上)|RecyclerView 篇
- PHP绕过open_basedir列目录的研究
- View的有效曝光监控(下)|ScrollView NestScrollView篇
- 聊聊AbstractProcessor和Java编译流程
- Okhttp如何开启的Http2.0
- PHP Execute Command Bypass Disable_functions
- 聊聊Android编译流程
- Android组件化问题思考
- 最近面试碰到的两道算法题|面试相关
- Thread也会OOM吗?
- RoundCube Webmail邮件正文存储型XSS(CVE-2015-1433)