数据结构13-排序方法之希尔排序的实例
2014-10-07 12:20
155 查看
程序实现用希尔排序方法对数组序列从大到小的排列,并输出排序后的数列元素,代码如下所示:
程序运行的结果如下图所示:
实例的分析:
1.函数中的子序列应用的是优化版的冒泡排序,详细请见数据结构12。
#include"stdio.h" void shellsort(int k[],int n) { int i,j,flag,gap=n; int tmp; while(gap>1){ gap=gap/2; /*增量缩小,每次减半*/ do{ /*子序列应用冒泡排序*/ flag=0; for(i=1;i<=n-gap;i++){ j=i+gap; if(k[i]<k[j]){ tmp=k[i]; k[i]=k[j]; k[j]=tmp; flag=1; } } }while(flag != 0); } } main(){ int i,a[11]={-111,2,5,6,3,7,8,0,9,12,1}; /*初始化序列,a[0]可任意置数*/ printf("The orginal data array is\n"); /*显示原序列之中的元素*/ for(i=1;i<=10;i++) printf("%d ",a[i]); shellsort(a,10); /*执行希尔排序*/ printf("\nThe result of Shell's sorting for the array is\n"); for(i=1;i<=10;i++) printf("%d ",a[i]); /*输出排序后的结果*/ getche(); }
程序运行的结果如下图所示:
实例的分析:
1.函数中的子序列应用的是优化版的冒泡排序,详细请见数据结构12。
相关文章推荐
- 数据结构10-排序方法之直接插入排序的实例
- 数据结构14-排序方法之快速排序的实例
- 轻松Ajax.net实例教程13_TextBoxWatermarkExtender(按AjaxControlToolkit字母排序)
- 数据结构--排序实例
- 数据结构--各种排序的实现(排序小结 希尔排序 快排 堆排序 归并排序)
- python字典多条件排序方法实例
- python字典多条件排序方法实例
- 数据结构内部排序方法
- 常见排序方法(冒泡排序、选择排序、插入排序、希尔排序和快速排序)
- Java 7大常见排序方法实例详解
- Array 重排序方法和操作方法的简单实例
- 排序方法总结(3)希尔排序
- 数据结构中的各种排序方法-JS实现
- 图解"数据结构--内部排序算法"----插入排序:直接插入排序、希尔排序
- 在microsoft vc++ 2008版中运行李先静先生一书及数据结构高一凡先生一书实例的方法
- 数据结构中排序方法汇总
- 基本排序方法之希尔排序
- 数据结构之希尔排序(谢尔排序)
- 排序方法总结(3)希尔排序
- Python中字典(dict)和列表(list)的排序方法实例