【一】需求分析课程题目是排序算法的实现,课程设计一共要设计八种排序算法。这八种算法共包括:堆排序,归并排序,希尔排序,冒泡排序,迅速排序,基数排序,折半插入排序,直接插入排序。为了运行时的以便,将八种排序措施进行编号,其中1为堆排序,2为归并排序,3为希尔排序,4为冒泡排序,5为迅速排序,6为基数排序,7为折半插入排序8为直接插入排序。【二】概要设计1.堆排序⑴算法思想:堆排序只需要一种记录大小的辅助空间,每个待排序的记录仅占有一种存储空间。将序列所存储的元素A[N]看做是一棵完全二叉树的存储构造,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的元素均不不小于(或不不不小于)其左右孩子(若存在)结点的元素。算法的平均时间复杂度为O(NlogN)。⑵程序实现及关键代码的注释:for(j=2*i+1;j<=m;j=j*2+1){if(j=su[j])break;su[i]=su[j];i=j;}su[i]=temp;}voiddpx()//堆排序{inti,temp;cout<<"排序之前的数组为:"<=0;i--){head(i,N);}for(i=N-1;i>0;i--){temp=su[i];su[i]=su[0];su[0]=temp;head(0,i-1);}cout<<"排序之后的数组为:"<=0&&(tempsu[j+1]){temp=su[j];su[j]=su[j+1];su[j+1]=temp;flag=false;}}if(flag==true)break;}cout<<"排序之后的数组为:"<=j)break;}if(i>=j)break;su[i]=su[j];while(temp>=su[i]){i++;if(i>=j)break;}if(i>=j)break;su[j]=su[i];flag=false;}else{while(temp>=su[i]){i++;if(i>=j)break;}su[j]=su[i];if(i>=j)break;while(temp<=su[j]){j--;if(i>=j)break;}su[i]=su[j];flag=true;}}for(i=1;ij;k--){su[k]=su[k-1];}su[j]=head;break;}}}for(i=1;ij;k--){su[k]=su[k-1];}su[j]=head;break;}}}5.迅速排序(1)任取待排序记录序列中的某个记录作为基准,按照该记录的关键字大小,将整个记录序列划分为左右两个子序列。左侧子序列中所有记录的关键字都不不小于或等于基准记录的关键字。右侧子序列中所有记录的关键字都不小于基准记录的关键字...