5 6課 概括說說簡單排序

2021-10-09 16:27:52 字數 414 閱讀 8382

前面已經說了,簡單排序演算法是一類演算法,指那些直觀、易理解的排序演算法的總和。

到現在為止,我們已經講了的三種排序演算法:選擇排序、起泡排序和插入排序,都屬於簡單排序演算法。

這三種演算法有許多效能上的共性,本章就我們來模擬看看。

排序的時間複雜度

假設我們要排列的數值共有 $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 選擇排序的效率問題 選擇...