cpp氣泡排序

2021-10-03 18:01:20 字數 969 閱讀 2148

氣泡排序演算法分析,這裡資料給的簡單點:

3 2 1.

要把這三個數字按從小到大(這個一般為正序)排列,也就是排出1 2 3的結果.

具體看**,大於就是正序,小於則相反

冒泡的做法:(這裡是前乙個數字比後乙個大的話 就交換位置)

第一趟:

1. 3 > 2 ?交換位置 此時:2 3 1

2. 3 > 1 ? 交換位置 此時:2 1 3

此時3已經到數列末尾了,結束第一趟

第二趟:這裡從第乙個數字開始

3. 2 > 1 ? 交換位置 此時:1 2 3

冒泡分析:

外迴圈控制的是每一趟交換的次數,他總為n - 1次(n為要排序的數字個數)

內迴圈控制趟的次數,所以總為n - i - 1次。

這裡簡化了大多步驟,多為個人經驗,具體可以去看複雜度分析

複雜度:(一般為時間複雜度,它與空間複雜度是互補的)

複雜度是怎麼算出來的呢,"一般" 的演算法特別好知道,只要知道有多少層迴圈就行了。

沒有迴圈:稱為常數階,為o(1)

一層迴圈:稱為線性階,為o(n)

兩層迴圈:稱為平方階,為o(n²)

特殊:

在迴圈裡加了其他的便於減少執行時間的語句

例如:二分法查詢,複雜度為o(logn),稱為線性對數階

複雜度為o(n平方)

//cpp

void

maopao

(int a,

int n)}}

}

氣泡排序法,cpp實現

首先,從頭開始往後掃瞄整個序列,在掃瞄過程中逐次比較相鄰兩個元素的大小.若相鄰兩個元素中,前面的元素大於後面的元素,則將它們互換,最後整個序列中最大者換到了最後的位置.然後將最大乙個元素除外,用相同的辦法掃瞄其他資料直到整個序列有順序為止.include define len 9 using nam...

CPP氣泡排序,插入排序,快速排序,等

include include include include include include using namespace std class person person const char n,int age,const char ad name n age age addr ad pers...

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...