1. 程式人生 > 其它 >團隊執行力低下、部門之間協作難? 可能是沒找到合適的協同辦公工具!

團隊執行力低下、部門之間協作難? 可能是沒找到合適的協同辦公工具!

(1,1,2,4,7,5)
本題給出的陣列如果採用直接插入排序,那麼其排序過程如下:首先1和1比較找到合適的插入位置,然後2和1比較,找到合適的插入位置;然後4和2比較,找到4的合適插入位置,然後7和4比較,找到7的合適插入位置,然後5和7比較,因為5比7小,因此要與4比較,然後就找到了5的合適位置,整個排序過程結束。總的比較次數為1+1+1+1+2=6次。

歸併排序的演算法思想是將兩個相鄰的有序子序列歸併為一個有序序列,然後再將新產生的相鄰序列進行歸併,當只剩下一個有序序列時演算法結束。其過程如下:1和1比較,然後歸併,2和4比較,然後歸併,7和5比較,然後歸併,解析來將再將[1,1]和[2,4]歸併,用2分別與兩個1比較得到[1,1,2,4],然後再用[1,1,2,4]與[5,7]歸併。這時,用5與[1,1,2,4]中每個元素分別比較一次,最後即可得到整個有序序列。總的比較次數為:1+1+1+2+4=9次。

堆排序的基本思想是先將序列建立堆,然後輸出堆頂元素,再將剩下的序列建立堆,然後再輸出堆頂元素,依此類推,直到所有元素均輸出為止。因此在堆排序過程中,最重要的就是建堆。本題中給出的陣列序列就是一個小頂堆,然後輸出堆頂,將剩下的部分調整為小頂堆,調整的過程為,首先將最後一個元素5置換到堆頂,然後用5與左孩子結點比較,由於大於左孩子,因此與其置換位置,然後值為5的結點仍然大於其左孩子結點,再置換位置,這樣就得到了新的小頂堆,這個過程總共比較2次。後面的排序過程是同樣的道理。本題採用堆排序演算法總共的比較次數為7次。

快速排序的基本思想是:

(1)以某個元素為支點(通常是第一個元素),通過比較關鍵碼和交換記錄,將待排序的序列分成兩個區間。其中左區間中所有元素的關鍵字均不大於支點元素的關鍵字,而右區間中所有元素的關鍵字均不小於支點元素的關鍵字。稱此過程為一次劃分;


(2)分別對左右區間的待排序序列,再按照以上方法進行劃分,直到整個序列按關鍵字有序為止。