2017年計算機二級考試公共基礎(chǔ)考點知識五

字號:


    順序查找
    查找是指在一個給定的數(shù)據(jù)結(jié)構(gòu)中查找某個指定的元素。從線性表的第一個元素開始,依次將線性表中的元素與被查找的元素相比較,若相等則表示查找成功;若線性表中所有的元素都與被查找元素進(jìn)行了比較但都不相等,則表示查找失敗。
    在下列兩種情況下也只能采用順序查找:
    (1)如果線性表為無序表,則不管是順序存儲結(jié)構(gòu)還是鏈?zhǔn)酱鎯Y(jié)構(gòu),只能用順序查找。
    (2)即使是有序線性表,如果采用鏈?zhǔn)酱鎯Y(jié)構(gòu),也只能用順序查找。
    二分法查找
    二分法只適用于順序存儲的,按非遞減排列的有序表,其方法如下:
    設(shè)有序線性表的長度為n,被查找的元素為i,
    (1)將i與線性表的中間項進(jìn)行比較;
    (2)若i與中間項的值相等,則查找成功;
    (3)若i小于中間項,則在線性表的前半部分以相同的方法查找;
    (4)若i大于中間項,則在線性表的后半部分以相同的方法查找。
    交換類排序法
    冒泡排序法和快速排序法都屬于交換類排序法。
    (1)冒泡排序法
    首先,從表頭開始往后掃描線性表,逐次比較相鄰兩個元素的大小,若前面的元素大于后面的元素,則將它們互換,不斷地將兩個相鄰元素中的大者往后移動,最后者到了線性表的最后。
    然后,從后到前掃描剩下的線性表,逐次比較相鄰兩個元素的大小,若后面的元素小于前面的元素,則將它們互換,不斷地將兩個相鄰元素中的小者往前移動,最后最小者到了線性表的最前面。
    對剩下的線性表重復(fù)上述過程,直到剩下的線性表變空為止,此時已經(jīng)排好序。
    在最壞的情況下,冒泡排序需要比較次數(shù)為n(n-1)/2。
    (2)快速排序法
    它的基本思想是:任取待排序序列中的某個元素作為基準(zhǔn)(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元素的排序碼均小于或等于基準(zhǔn)元素的排序碼,右子序列的排序碼則大于基準(zhǔn)元素的排序碼,然后分別對兩個子序列繼續(xù)進(jìn)行排序,直至整個序列有序。
    疑難解答:冒泡排序和快速排序的平均執(zhí)行時間分別是多少?
    冒泡排序法的平均執(zhí)行時間是O(n2),而快速排序法的平均執(zhí)行時間是O(nlog2n)。