希尔排序
来源:互联网 发布:淘宝店铺更改为基础版 编辑:程序博客网 时间:2024/06/05 05:41
直接来代码:
// EX_EXAM.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;/*包含头文件*/#include<stdio.h>#include<stdlib.h>#define MaxSize 50typedef int KeyType;typedef struct /*数据元素类型定义*/{KeyType key;/*关键字*/}DataType;typedef struct /*顺序表类型定义*/{DataType data[MaxSize];int length;}SqList;void InitSeqList(SqList *L,DataType a[],int n);void ShellInsert(SqList *L,int c);void ShellInsertSort(SqList *L,int delta[],int m);void DispList(SqList L,int n);void ShellInsert(SqList *L,int c)/*对顺序表L进行一次希尔排序,delta是增量*/{int i,j;DataType t;for (i=1;i<=L->length-c;i=i+c){if (L->data[i+c].key<L->data[i].key){t=L->data[i+c];for (j=i;j>0&&t.key<L->data[j].key;j=j-c){L->data[i+c]=L->data[i];//移动}L->data[j+c]=t;}}}void ShellInsertSort(SqList *L,int delta[],int m)/*希尔排序,每次调用算法ShellInsert,delta是存放增量的数组*/{int i;for (i=0;i<m;i++){ShellInsert(L,delta[i]);}}void InitSeqList(SqList *L,DataType a[],int n)/*顺序表的初始化*/{int i;for(i=1;i<=n;i++){L->data[i]=a[i-1];}L->length=n;}void DispList(SqList L,int n)/*输出表中的元素*/{int i;for(i=1;i<=n;i++)printf("%4d",L.data[i].key);printf("\n");}int _tmain(int argc, _TCHAR* argv[]){DataType a[]={56,22,67,32,59,12,89,26,48,37};int delta[]={5,3,1};int i,n=10,m=3;SqList L;/*希尔排序*/InitSeqList(&L,a,n);printf("排序前:");DispList(L,n);ShellInsertSort(&L,delta,m);printf("希尔排序结果:");DispList(L,n);return 0;}
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- This absolute uri http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml or the ...
- Regional 一个月,ToDoList
- SimpleAdapter显示网络图片
- [转]Windows Shell 编程 第十三章
- 蝴蝶兰与鳞托菊
- 希尔排序
- 免费资源:Typicons-免费图标字体
- STL 容器和迭代器连载7_容器大小的操作
- [转]Windows Shell 编程 第十四章
- 无法解析或打开软件包的列表或是状态文件解决方案
- Tomcat7中部署Solr3.6.1
- iPhone开发指南-事件处理
- HDU 1406 注意输入判断num1 和 num2的大小
- [转]Windows Shell编程 第十五章