正在加载图片...
算法如下: void ShellSort Data Type all, int n, int dn int numOD) /用希尔排序法对元素a0-an-1排序,dI0- dumont-1为希尔增量值 int i,j, k, m, span; Data Type temp; for(m=0; m numOfD; m++) 共 numofl次循环 span=dmi /取本次的增量值 for(k=0; k< span; k++) /共span个小组 组内是直接插入排序,区别是每次不是增1而是增span for(i=k;i< n-span; i=i+span) {temp=a[i计span}; whiled>-1 && temp. key a[jl.key) aj+span =ajl J=J-span; mp算法如下: void ShellSort (DataType a[], int n, int d[], int numOfD) //用希尔排序法对元素a[0]--a[n-1]排序,d[0]--d[numOfD-1]为希尔增量值 { int i, j, k, m, span; DataType temp; for(m = 0; m < numOfD; m++) //共numOfD次循环 { span = d[m]; //取本次的增量值 for(k = 0; k < span; k++) //共span个小组 { //组内是直接插入排序,区别是每次不是增1而是增span for(i = k; i < n-span; i = i+span) { temp = a[i+span]; j = i; while(j > -1 && temp.key < a[j].key) { a[j+span] = a[j]; j = j-span; } a[j+span] = temp; } } } }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有