選擇排序的思想不難理解。選擇排序把資料分成兩組來看待,一組已經有序的資料和一組無序的資料,排序開始之前,有序資料的個數為0。
每次從未排序的資料中選取最小值,並與未排序的最左資料進行交換,直到未排序的資料為0,則結束排序。
演算法過程如下圖所示
}3.1 時間複雜度選擇排序每次需要遍歷未排序的資料,尋找最小值,對於n個資料來說,需要比較的次數為(n - 1) + (n - 2) + …+ 1,所以其時間複雜度為o(n^2)。
3.2 空間複雜度
選擇排序中占用的空間為常數個空間,所以其空間複雜度為o(1)。
選擇排序並不適合大資料集的排序,因為其時間效率比較差,在實際中並不常用。
面試官都在問 快速排序C 實現
快排是c.a.r.hoare在1960提出的一種排序演算法,這是一種採用分治思想的排序演算法,大致分為三個步驟。定基準 首先選擇乙個元素作為基準值 劃分區 所有比基準小的元素置於基準左側,比基準大的元素置於右側,構成左右兩個子串行 遞迴呼叫 遞迴地呼叫此切分過程,切分其子序列,直到子串行只含有乙個值...
面試官都在問 比較類排序系列 堆排序
堆排序是利用堆進行排序的方法。假設進行公升序排序,則它的基本思想是,將待排序的序列構造成乙個大頂堆,這是乙個建堆的過程。此時,整個序列的最大值就是堆頂的根結點。將它與堆陣列的末尾元素交換,此時末尾元素就是最大值,然後將剩餘的n 1個序列,從根開始進行向下調整,重新構造成乙個堆,這樣就會得到n個元素中...
面試官都在問 Linux命令 grep
grep是乙個文字過濾器,作用是在檔案中查詢符合我們要求的內容。第一種形式,從指定的檔案中找出匹配pattern的行 grep option pattern file1,file2,第二種形式,從管道中找出匹配pattern的行 cmd grep option pattern 說明 pattern是...