已知下列各種初始狀態(tài)(長度為n)的元素,試問當利用直接插入排序進行排序時,至少需要進行多少次比較(要求排序后的記錄由小到大順序排列)?
⑴關鍵碼從小到大有序(key1< key2< …< keyn)。
⑵關鍵碼從大到小有序(key1> key2 >…> keyn)。
⑶奇數(shù)關鍵碼順序有序,偶數(shù)關鍵碼順序有序(key1< key3< …,key2key4…)。
⑷前半部分元素按關鍵碼順序有序,后半部分元素按關鍵碼順序有序,即:(key1< key2< …< keym,keym+1<
keym+2 <…)
判別下列序列是否為堆,如不是,按照堆排序思想把它調整為堆,用圖表示建堆的過程。
⑴(1,5,7,25,21,8,8,42)
⑵(3,9,5,8,4,17,21,6)
序列⑴是堆,序列⑵不是堆,調整為堆(假設為大根堆)的過程如下圖所示。
