深圳网站制作搜行者seo,郑州企业自助建站,自己做的网站显示不安全怎么回事,wordpress 上传图片大小希尔排序介绍
希尔排序核心思想就是:1,分组;2,直接插入排序:越有序越快 希尔排序就是多次利用直接插入排序的一个排序算法. 希尔排序的算法思想:间隔式分组,利用直接插入排序让组内有序,然后缩小分组再次排序,直到组数为1希尔排序的理论基础就是直接插入排序越有序越快; 希尔排…希尔排序介绍
希尔排序核心思想就是:1,分组;2,直接插入排序:越有序越快 希尔排序就是多次利用直接插入排序的一个排序算法. 希尔排序的算法思想:间隔式分组,利用直接插入排序让组内有序,然后缩小分组再次排序,直到组数为1希尔排序的理论基础就是直接插入排序越有序越快; 希尔排序示意图:
完整代码
//一趟希尔排序,gap为组数(间隔)
static void Shell(int* arr, int len, int gap)
{int tmp;int j;for (int i gap; i len; i){tmp arr[i];for (j i - gap; j 0; j - gap){if (arr[j] tmp){arr[j gap] arr[j];}else {break; }}arr[j gap] tmp; }
}void ShellSort(int* arr, int len)
{int d[] { 5,3,1 };//分组数,最后一个一定为1 for (int i 0; i sizeof(d) / sizeof(d[0]); i) {Shell(arr, len, d[i]);//一趟希尔排序 }
}本篇完