(数据结构) 第八章 排序.ppt

(数据结构) 第八章 排序

归并排序 关键问题⑵:怎样完成一趟归并? 设参数i指向待归并序列的第一个记录,归并的步长是2h,在归并过程中,有以下三种情况: ②若i<n-h+1,则表示仍有两个相邻有序表,一个长度为h,另一个长度小于h,则执行两个有序表的归并,完成后退出一趟归并。 20 60 5 31 44 55 65 i h i=4 n-2h+1=4 n-h+1=6 n-2h+1 n-h+1 h 归并排序 关键问题⑵:怎样完成一趟归并? 设参数i指向待归并序列的第一个记录,归并的步长是2h,在归并过程中,有以下三种情况: ②若i<n-h+1,则表示仍有两个相邻有序表,一个长度为h,另一个长度小于h,则执行两个有序表的归并,完成后退出一趟归并。 算法描述: if (i<n-h+1) Merge (r, r1, i, i+h-1, n); 归并排序 关键问题⑵:怎样完成一趟归并? 设参数i指向待归并序列的第一个记录,归并的步长是2h,在归并过程中,有以下三种情况: ③若i≥n-h+1,则表明只剩下一个有序表,直接将该有序表送到r1的相应位置,完成后退出一趟归并。 i i=9 n-h+1=8 n-h+1 h 20 60 5 31 44 55 65 15 28 归并排序 关键问题⑵:怎样完成一趟归并? 设参数i指向待归并序列的第一个记录,归并的步长是2h,在归并过程中,有以下三种情况: ③若

文档评论(0)

1亿VIP精品文档

相关文档