前面已經說了,簡單排序演算法是一類演算法,指那些直觀、易理解的排序演算法的總和。
到現在為止,我們已經講了的三種排序演算法:選擇排序、起泡排序和插入排序,都屬於簡單排序演算法。
這三種演算法有許多效能上的共性,本章就我們來模擬看看。
排序的時間複雜度
假設我們要排列的數值共有 $n$ 個,那麼排序演算法的時間複雜度應該是大 $o$ 符號下乙個 $n$ 的函式——$o f(n)$。
排序演算法的時間複雜度不能一概而論,而是要區分最好情況,最壞情況和一般情況:
最壞時間複雜度
我們先來看看最壞情況。最壞情況對應到實際中,是給乙個倒序的數列排序。
從**的角度來看,就是將乙個演算法中所有的**全都足額跑滿,沒有任何中途的 break/return/exit!
既然如此,就讓我們先來對比一下三個排序演算法的
排序 簡單排序
氣泡排序 函式名 bubble sort 功能 實現公升序排序 引數 帶排序的陣列,陣列的長度 返回值 為空 描述 時間複雜度為o n 2 輔助空間為o 1 有一種變形的氣泡排序 雞尾酒排序,它是雙向的氣泡排序,時間複雜度也為o n 2 void bubble sort int bubble,int...
排序 簡單排序
一 氣泡排序 源 void bubble sort int array,int size array if flag 0 break 二 插入排序 原理 從第二個元素開始向前比較判斷,如果比前乙個元素小,則前乙個元素往後移動一位,直到第乙個元素或者前面條件不成立,將該元素插入當前位置。源 void ...
簡單排序 選擇排序
package cnic.cn.impl public class selectionsort change array out swap value array out array max array max change output for int i 0 i 9 i 選擇排序的效率問題 選擇...