C 交換排序(氣泡排序 快速排序)

2021-09-25 00:04:38 字數 791 閱讀 8777

氣泡排序

思路:

實現:

//氣泡排序

void

bubblesort

(sqlist &l)

m--;//執行一次長度減一

}}

複雜度

特點:快速排序

思路:如3,9,7,4,6五個數字排序

隨便選乙個 其中的數字,比如4,然後把3放到4的左邊,把9,7,6放到4的右邊。

然後在9,7,6中選乙個數字如7,把6放到7的左邊,把9放到7的右邊。

總之,在一組數中選乙個數,比這個數大放左邊,比這個數小的放右邊。分成兩組,再在每一組中遞迴的呼叫這種方法。直到分不下去為止。

實現

//快速排序

//一次排序,以最後一位數的大小作為標準將數列分為兩組

intpartition

(sqlist &l ,

int low,

int high )

l.r[low]

= l.r[0]

;//最後將哨兵中的資料歸還,因此,左邊的都是比該記錄小的,右邊的都是比該記錄大的,到此一次排列結束

return low;

//返回該記錄的位置,樞軸位置

}//遞迴呼叫

void

quicksort

(sqlist &l,

int low,

int high)

}void

quicksort

(sqlist &l)

複雜度 特點

C 交換排序(冒泡 快速排序)

前置知識 實現 include include include using namespace std void bubblesort int a,int len if flag return 小優化 一趟下來沒有交換便表示排好序了,返回即可 intpartition int a,int l,int...

交換排序 氣泡排序,快速排序

交換排序 氣泡排序,快速排序 執行環境 vs2010 include include include include define ok 1 define true 1 define false 0 define maxsize 50 typedef struct redtype typedef s...

交換排序(快速排序 氣泡排序)

1.快速排序 先從數列中取出乙個數作為基準數 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊 再對左右區間重複第二步,直到各區間只有乙個數。以乙個陣列作為示例,取區間第乙個數為基準數。0 1 2 3 4 5 6 7 8 9 72 6 57 88 60 42 83 73 4...