已知下列各种初始状态(长度为n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)? 前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key1<key2<…<keym,keym+1>key

admin2019-08-01  34

问题 已知下列各种初始状态(长度为n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)?
前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key1<key2<…<keym,keym+1>keym+2>…>keyn,m为中间位置)。

选项

答案在前半部分元素按关键字有序,后半部分按关键字逆序的情况下,后半部分元素的关键字均大于前半部分元素的关键字较次数最少,此时前半部分的比较次数为m一1,后半部分的比较次数为(n一m一1)(n—m+2)/2,因此,总的比较次数为m一1+(n一m一1)(n一m,m+2)/2=(n-1)(n+8)/8(假设n为偶数,m=n/2)。

解析
转载请注明原文地址:https://kaotiyun.com/show/EtCi777K
0

最新回复(0)