1、直接插入排序
void InsertSort(int array[], int size)
{
for(int idx=1; idx<size; idx++)
{
int temp = array[idx];
int end = idx-1;
while(end>=0 && array[end] > temp)
{
array[end+1] = array[end];
--end;
}
array[end+1] = temp;
}
}2、希尔排序
void ShellSort(int array[], int size)
{
int gap = size;
while(gap > 1)
{
gap = gap/3 + 1;
for(int idx = gap; idx < size; ++idx)
{
int temp = array[idx];
int end = idx - gap;
while( end >= 0 && temp < array[end])
{
array[end+gap] = array[end];
end -= gap;
}
array[end + gap] = temp;
}
}
}
本文详细介绍了两种常用的排序算法:直接插入排序和希尔排序。通过具体的实现代码,展示了这两种算法的工作原理及其步骤。直接插入排序是一种简单直观的方法,适用于小规模数据集;而希尔排序则是直接插入排序的一种改进版本,通过引入增量序列有效地提高了排序效率。

被折叠的 条评论
为什么被折叠?



