实现希尔和快速排序
实验十四 实现希尔和快速排序 姓名:张就 班级:09计算机一班 学号:2009111111
一、实验目的
熟悉希尔排序和快速排序的基本思想,掌握希尔排序和快速排序的操作过程及算法实现。
二、实验内容
输入待排数据元素序列,然后用希尔排序和快速排序法对其进行排序。
三、算法思想与算法描述
1、希尔排序。先取一个小于n的整数d1作为第一个增量,把全部元素记录分成d个组。所有距离为d的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个小于d的增量d1重复上述的分组和排序,直至所取的增量dt=1,即所有记录放在同一组中进行直接插入排序为止。具体的算法如下所示: void ShellSort(RecType R[],int n)
{
int i,j,d,k; RecType temp; d=n/2; while(d>0) { { j=i-d; while(j>=0&&R[j].key>R[j+d].key) { temp=R[j]; R[j]=R[j+d]; R[j+d]=temp; j=j-d; for(i=d;i<n;i++)