上 簡單排序之選擇排序,氣泡排序,插入排序

2021-09-12 08:28:37 字數 1294 閱讀 6641

1選擇排序:從陣列中每次挑選乙個最小值,與放在設定好的位置,時間複雜度上下界都是n^2

**實現: ps.沒有給出main函式,只給出了排序函式的演算法

void

paixv

(int arr,

int n)

}int tmp = arr[i]

; arr[i]

= arr[min]

; arr[min]

= tmp;

}//輸出函式

for(i =

0; i < n; i++)}

}

選擇排序耗時(pta 排序題oj

2氣泡排序:對陣列中相鄰的兩元素進行比較,如果左大於右則交換位置.時間複雜度下界n,上界n^2

void

paixv

(int arr,

int n)

}//當以上的if判斷一次都沒被呼叫過,證明序列已經有序,可以直接跳出迴圈

if(flag ==0)

}for

(i =

0; i < n; i++)}

}

氣泡排序耗時:

3插入排序:從待排序列中抽乙個數放到有序序列中,通過每次比較大小從而插入數生成乙個新的有序序列.時間複雜度下界n,上界n^2

對於基本有序的序列來說插排的速度比較快

void

paixv

(int arr,

int n)

arr[j]

= temp;

}for

(i =

0; i < n; i++)}

}

插排耗時:(其中倒數第二項是相對有序的序列,可以看到耗時比上面的短很多

以上三種僅以交換相鄰兩元素的排序演算法有插排和冒泡,平均時間複雜度下界都是n^2,主要優點是簡單,但是當資料量大並且相對無序的時候,排序的時間往往很久.

最壞情況下,選擇排序的耗時比氣泡排序的要短,因為冒泡每一次比較為真後需要相鄰兩數交換,選擇排序每次查詢只會找到最小的數,然後放入預先設定好

的位置中.而插入排序對於基本有序的資料而言非常的快,

簡單排序 選擇 插入 氣泡排序

3種順序排序方法。簡單排序是指時間複雜度為o n 2 的排序方法。1 選擇排序 將某個特定值有序的放置在最終位置上 外層迴圈控制最終位置的序號,內層迴圈從外層迴圈序號處向後遍歷,找到最小值。2 插入排序 插入排序將某個特定值插入到值列的某個子集中,並重複該過程 外層迴圈控制要插入的資料 從第二個數到...

簡單排序之選擇排序

口訣 兩兩相比 每輪取最小數交換 外層n 1 內層 i 1 n 優化 相比氣泡排序,雖然比較次數沒變,但是交換次數減少了。package sort 選擇排序 public class selection system.out.println 未排序前 for int i 0 i array.leng...

簡單排序 氣泡排序,插入排序,選擇排序

簡單排序 氣泡排序,插入排序,選擇排序 這些演算法思想是比較簡單的,執行速度也相對慢一些,不過,在某些情況下比那些複雜演算法實際上還要好一些,比如,對於小規模的檔案以及基本有序的檔案,插入演算法能比快速排序演算法更為有效。如何排序 1 比較兩個資料項 2 交換兩個資料想,或者複製其中的一項 氣泡排序...