希尔排序

孤者浪人 提交于 2020-01-20 00:12:09

排序算法目录:

1.插入排序
2.希尔排序
3.选择排序
4.冒泡排序
5.快速排序
6.计数排序
7.堆排序

图解希尔排序:

选定一个整数,分组,相同距离的在同一组内,并对每一组进行排序,然后重复上述分组和排序的工作,当到达=1时,所有记录在统一组内排好序。
在这里插入图片描述

代码实现:

void ShellSort(int* array, int size)//希尔排序
{
	int i = 0;
	int j = 0;
	int n = 0;
	int gap = 0;
	for (gap = size / 2; gap > 0; gap /= 2)
	{
		
		for (i = 1; i < size; i += gap)
		{
			n = array[i];
			j = i - gap;
			while (j >= 0 && n < array[j])
			{
				array[j + gap] = array[j];
				j-=gap;
			}
			array[j + gap] = n;
		}
	}
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!