基本排序之希尔排序
2013-06-08 11:50
190 查看
关于希尔排序,这是一种不稳定,而且属于插入排序。为什么?
希尔排序=分成若干个组子序列,分别插入排序。
怎么分组?
有一个增量h,没增加h,则把它们放在一起。插入排序,直到h减少到1,此时正是简单插入排序。
看代码
这是两种非常常见的插入法的排序应用。
希尔排序=分成若干个组子序列,分别插入排序。
怎么分组?
有一个增量h,没增加h,则把它们放在一起。插入排序,直到h减少到1,此时正是简单插入排序。
看代码
#include<iostream> using namespace std; template <class T> void shel(T p[],int n){ int k,j,i; T t; k=n/2; while(k>0){ for(j=k;j<=n-1;j++){ t=p[j];i=j-k; while((i>=0)&&(p[i]>t)){ p[i+k]=p[i];i=i-k; } p[i+k]=t; } k=k/2; } return; }同样的当调用函数时,只需改为shel(p+10,40);即可。
这是两种非常常见的插入法的排序应用。
相关文章推荐
- 笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算
- 基本排序(三):插入排序 和 希尔排序- 从后向前扫描,比正操作元素大的逐步移位
- Python排序搜索基本算法之希尔排序实例分析
- 基本排序_希尔排序_Java实现
- 基本排序算法(冒泡排序 选择排序 插入排序 快速排序 归并排序 基数排序 希尔排序)
- 基本排序方法之希尔排序
- 算法_基本排序算法之冒泡排序,选择排序,插入排序和希尔排序
- 【Python排序搜索基本算法】之希尔排序
- 直接插入排序,希尔排序,冒牌排序,选择排序基本性能测试
- 基本排序方法之四——希尔排序
- java基本排序之希尔排序
- 基本的排序算法:冒泡排序、插入排序、希尔排序、选择排序、归并排序、快速排序、堆排序
- 几种基本的排序算法(选择排序,冒泡排序,快速排序,归并排序,希尔排序)C语言实现
- 基本排序系列之希尔排序
- 插入排序类:直接插入排序和希尔排序
- 浅谈C++之冒泡排序、希尔排序、快速排序、插入排序、堆排序、基数排序性能对比分析(好戏在后面,有图有真相)
- 三个简单、基本的排序算法---插入排序、选择排序、冒泡排序
- 【Python排序搜索基本算法】之拓扑排序
- 【排序】排序的基本概念
- 直接插入排序和希尔排序