数据结构- 插入排序
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; } }}
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; } }}
相关文章推荐
- 插入排序
- C++实现简单的希尔排序Shell Sort实例
- php实现插入排序
- Java数据结构及算法实例:插入排序 Insertion Sort
- 使用Java实现希尔排序算法的简单示例
- 希尔排序的算法代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- javascript数据结构之双链表插入排序实例详解
- c++几种基本的插入排序(图文)
- JavaScript排序算法之希尔排序的2个实例
- JavaScript希尔排序、快速排序、归并排序算法
- Java排序算法总结之插入排序
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- java高级排序之希尔排序
- JAVA算法起步之插入排序实例
- 详解直接插入排序算法与相关的Java版代码实现
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- java 中基本算法之希尔排序的实例详解
- java插入排序