插入排序顺序倒序
来源:互联网 发布:桌面出现激活windows 编辑:程序博客网 时间:2024/04/28 20:35
//插入排序
int* insertSort(int a[], int len, bool align = true){
for (int i = 1; i < len; i++)
{
if (align)
{
//从小到大
if (a[i] < a[i - 1])
{
int j = i - 1;
int x = a[i];
while (x < a[j])
{
a[j + 1] = a[j];
j--;
//j == -1时越界,a[j]趋近于无穷小,x 总是大于这个数
//while自动跳出
}
a[j + 1] = x;
}
}
else
{
//从大到小
if (a[i] > a[i - 1])
{
int j = i - 1;
int x = a[i];
while (x > a[j])
{
a[j + 1] = a[j];
j--;
if (j == -1)
{
//越界后的数字接近于无穷小,x总是大于无穷小
//所以这里当j == -1, 要主动跳出循环
break;
}
}
a[j + 1] = x;
}
}
}
return a;
}
int* insertSort(int a[], int len, bool align = true){
for (int i = 1; i < len; i++)
{
if (align)
{
//从小到大
if (a[i] < a[i - 1])
{
int j = i - 1;
int x = a[i];
while (x < a[j])
{
a[j + 1] = a[j];
j--;
//j == -1时越界,a[j]趋近于无穷小,x 总是大于这个数
//while自动跳出
}
a[j + 1] = x;
}
}
else
{
//从大到小
if (a[i] > a[i - 1])
{
int j = i - 1;
int x = a[i];
while (x > a[j])
{
a[j + 1] = a[j];
j--;
if (j == -1)
{
//越界后的数字接近于无穷小,x总是大于无穷小
//所以这里当j == -1, 要主动跳出循环
break;
}
}
a[j + 1] = x;
}
}
}
return a;
}
0 0
- 插入排序顺序倒序
- python实现插入排序算法的顺序和倒序
- 升序和倒序的插入排序代码
- C#字典Dictionary排序(顺序、倒序)
- C#字典Dictionary排序(顺序、倒序)
- 四种常用的排序算法(冒泡、选择、倒序、插入)
- 插入排序(正序、倒序)-c++代码实现
- 顺序,冒泡,插入,shell排序
- VB排序算法源码,支持倒序顺序字符排序数字排序
- 整体顺序部分倒序
- select 出现排序过慢(非插入顺序)
- 插入排序的顺序表实现
- C#文件和文件文件夹按时间、名称排序-顺序与倒序
- Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码
- Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码
- 使用冒泡倒序排序
- 倒序,冒泡,选择排序
- 倒序的拓扑排序
- HDU 2553 N皇后问题 (状压+dfs)
- synchronized——对象锁
- 转载 Unity C# 自定义TCP传输协议以及封包拆包、解决粘包问题
- Sklearn用户手册(五):回归二
- 51nod oj 1390 游戏得分 1351 吃点心【贪心】
- 插入排序顺序倒序
- 欢迎使用CSDN-markdown编辑器
- TOJ 2877.Paradox With Averages
- Poj 1836 Alignment (双重LIS)
- LeetCode #167: Two Sum II - Input array is sorted
- [Leetcode] Ugly Number
- 每日一省之—基于双数组和二分查找法实现符号表(或者字典)
- HDU Problem 1711 Number Sequence 【KMP】
- 【原创】东方耀reactnative 视频18之-Touchable组件