数组前半部分和后半部分有序的全排序
时间: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 }
- 17年AI在游戏中完胜人类,AlphaGo的下一个目标是什么?DeepMind有一个45年超越人类计划
- PHP常用的正则表达式
- ASP.NET Core管道深度剖析(3):管道是如何处理HTTP请求的?
- 浅析负载均衡的6种算法,Ngnix的5种算法
- 字符串的学习
- 【Scikit-Learn 中文文档】内核岭回归 - 监督学习 - 用户指南 | ApacheCN
- 可视化(番外篇)——在Eclipse RCP中玩转OpenGL
- 养良好C语言编程风格,编优质C语言代码,这才是C语言的开始
- IBM让《星球大战》中的各种黑科技变成现实
- 学习SVM(二) 如何理解支持向量机的最大分类间隔
- 解密区块链:不可编辑性带来的问题
- 学习SVM(三)理解SVM中的对偶问题
- 学习SVM(四) 理解SVM中的支持向量(Support Vector)
- 转行数据挖掘和机器学习(四)
- 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 数组属性和方法
- Python实战 | 送亲戚,送长辈,月饼可视化大屏来帮忙!
- SAP Spartacus PagelayoutComponent里的section和slot
- SAP Spartacus ComponentData的提前subscription
- 如何在 SwiftUI 中使用手势
- jQuery 尺寸、位置操作
- SwiftUI:触控反馈
- .net core ef core 自动迁移,自动修改数据库
- 白话 CRC
- pytest封神之路第六步 断言技巧
- pytest封神之路第七步 用例查找原理
- 字符串-KMP
- 数据分析与数据挖掘 - 08图形绘制
- 数据分析与数据挖掘 - 09邻近算法
- 字符串-AC自动机(详细图解)
- 挖洞经验 | Google Play Core Library中的代码执行漏洞