氣泡排序及選擇排序

2021-09-14 02:28:28 字數 1458 閱讀 5967

對一組元素進行氣泡排序,從左向右或從右向左排序,每次對相鄰兩個數進行比較,根據自己需求(公升序或者降序)決定是否調整順序。每次完成一次冒泡,都在未排序列中會產出乙個最大或最小值並將該值確定位置

1.如果是將序列從右向兩兩比較,那麼每次冒出的最大數或者最小數將出現在最邊(在未排序的序列前面)

2.如果序列是從左向兩兩比較,那麼每次冒出的最小數或最大數出現在最邊(未排序的最後面)

(至於每次冒出的是最大值還是最小值取決於公升序還是降序)

void

bubblesort

(int array,

int size)}if

(0== flag)

//,當某次冒泡一次交換都沒有發生交換,說明已經完全有序,因此不必再進行排序

}}

注:加入flag標記符優化該排序,當某次冒泡完時,並沒有改變這組元素的序列,說明該序列已經完全有序。

從一端開始,在每個元素位置處遍歷其餘元素,選出最大或最小數在該位置,直至所有位置都確定好對應的數

void

selectsort

(int array,

int size)

//從小到大排序}}

}

#include

#include

void

swap

(int

*a,int

*b)void

bubblesort

(int array,

int size)}if

(0== flag)

//,當某次冒泡一次交換都沒有發生交換,說明已經完全有序,因此不必再進行排序}}

//選擇排序

void

selectsort

(int array,

int size)

//從小到大排序}}

}int

main()

;int n =

sizeof

(arr)

/sizeof

(arr[0]

);//bubblesort(arr, n);

selectsort

(arr, n)

;printf

("公升序排列後:");

for(

int i =

0; i < n; i++

)printf

("\n");

system

("pause");

return0;

}

總結一下就是:

選擇排序是給位置找合適的數,就像你找女朋友哈;氣泡排序是給數(隨波逐流中)找合適的位置,半生漂泊無處安家;

演算法之旅 氣泡排序及選擇排序

氣泡排序和選擇排序是排序演算法中比較簡單的兩種演算法。氣泡排序的思想是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,針對所有的元素重複以上的步驟,這樣每次參與比較的元素就越來越少,直到沒有任何一對數字需要比較。對n個數字進行氣泡排...

陣列及排序(冒泡 選擇 快速排序)

1.陣列 使用單獨的變數名來儲存一系列的值 簡單的說,陣列的作用,就是乙個容器,將多個資料儲存起來 2.宣告陣列的方法 字面量 var arr eg var arr 兔子1 兔子2 兔子3 兔子4 console.log arr 建構函式方法 var arr new array 如果引數為乙個數值 ...

選擇排序,氣泡排序,雙向氣泡排序

氣泡排序和選擇排序是最基本的排序方式,要掌握。氣泡排序重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。選擇排序每一趟從待排序的 資料元素 中選出最小 或最大 的乙個元素,順序放在已排好序的數列的...