排序性能分析(7)
时间:2026-01-19
时间:2026-01-19
课设 排序性能分析
d=n;
do{ d=[d/2];
bool=1;
for(i=1;i<=L.length-d;i++) { j=i+d;}
if(r[i]>r[j]) {
x=r[i]; r[i]=r[j]; r[j]=x; bool=0; }
}while(d>1) }
(3) 选择排序
void SelectSort(SeqList R) {
int i,j,k;
for(i=1;j<=n;i++) //做第i趟排序 { k=i;
for(j=i+1;j<=n;j++) //在当前无序区R[i…n]中选key最小的记录R[k]
if(R[j].key<R[k].key)
k=j; //k记下目前找到的最小关键字所在的位置 if(k!=i) //交换R[i]和R[k] {R[0]=R[i]; //R[0]作暂存单元 R[i]=R[k]; R[k]=R[0]; } } }
(4) 冒泡排序
void BubbleSort(SeqList R)
{ //R[1…n]是待排序的文件,采用自下而上扫描,对R做冒泡排序 int i,j;
Boolean exchange;//交换标志
for(i=1;i<n;i++) //最多做n-1趟排序
exchange=FALSE;//本趟排序开始前,交换标志应为假
for(j=n-1;j>=i;j--) //对当前无序区R[i…n]自下而上扫描
if(R[j+1].key<R[j].key)//交换记录
上一篇:非酮症性高血糖合并偏侧舞蹈症
下一篇:工程问题综合练习题