[数据结构]排序算法
Posted 再吃一个橘子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[数据结构]排序算法相关的知识,希望对你有一定的参考价值。
插入排序
单趟插入排序
(假设升序, 且原数组是有序数组)
//单趟排序(升序为例) [原数组为有序数组]
void InsertSort(int* a, int n)
int end = sizeof(a) / sizeof(a[0]) - 1;
int x;
while (end >= 0)
if (a[end] > x)
a[end + 1] = a[end];
--end;
else
break;
a[end + 1] = x;
有时间再看杭哥讲解!
插入排序算法
(升序,且原数组是无序)
//插入排序(升序为例) [原数组为 无序数组 ]
void InsertSort(int* a, int n)
for (int i = 0; i < n - 1; i++)
int end = i;
int x = a[end+1];
while (end >= 0)
if (a[end] > x)
a[end + 1] = a[end];
--end;
else
break;
a[end + 1] = x;
(我们用抓扑克牌来理解会更好一些)
【比如:我们抓牌,摸第一张抓在手里后,我们默认第一张是有序的。紧接着抓第二张牌,去和第一张牌比较大小,变为升序。再继续抓第三张牌,去和前两张牌依次比较,依旧需要比较后选择插入的位置使之 满足升序.........】
希尔排序
以上是关于[数据结构]排序算法的主要内容,如果未能解决你的问题,请参考以下文章