您的位置:首页 > 理论基础 > 数据结构算法

数据结构- 插入排序

2016-05-24 18:38 246 查看
插入排序
1.直接插入排序

void InsertSort(int *a, size_t size)//直接插入排序
{
assert(a);
for (size_t i = 0; i < size - 1; ++i)
{
int end = i;
int tmp = a[end + 1];
while (end >= 0 && a[end]>tmp)
{
a[end + 1] = a[end];
--end;
}
a[end+1] = tmp;
}
}
2.希尔排序

//希尔排序void ShellSort(int *a, size_t size){ assert(a); int gap = size; while (gap > 1) { gap = gap / 3 + 1; for (size_t i = 0; i < (size - gap); i++) { int end = i; int tmp = a[end + gap]; while (end >= 0 && a[end]>tmp) { a[end + 1] = a[end]; end = end - gap; } a[end + gap] = tmp; } }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息