C語言 氣泡排序演算法

2021-08-04 14:31:14 字數 988 閱讀 6658

重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名。

void swap(int *a,int *b)

int main()

; int i;

int j;

int len;

len =sizeof(str)/sizeof(str[0]);

for(i=0; istr[j+1])}}

for(i=0; i

執行結果如下:

[lalala@jjjjj ~]$ ./maopao

2 5 6 11 4 7 8 55 0 3

0 2 3 4 5 6 7 8 11 55

再寫這個程式的時候,我遇到了兩個問題跟大家分享一下:

第乙個問題是我想自己定義乙個函式用於交換兩個變數的值;

剛開始我就直接這樣寫了

void swap(int a, int b)

void swap(int *a,int *b)

第二個問題是我想求一下已知的要排序的這個序列有多少個元素,所以我就用了sizeof來求,結果錯了,後來才發現求得的是這個陣列所佔的大小(int str),要想求得這個陣列中的元素的個數,還要求出這個陣列中乙個元素的大小(sizeof(str[0]))

len =sizeof(str)/sizeof(str[0]);
這樣求len就是這個陣列中元素的個數

如有理解不對的地方,還請看博文的大神多多指教本菜鳥

C語言排序演算法 氣泡排序演算法

氣泡排序是一種交換排序,基本思想是 相鄰兩兩比較,若反序則交換。定義交換操作函式 1 void swap int p,int i,intj 2 基本排序演算法 思想 i 0時,p i 依次與後面的元素比較,如果後面的元素小,則交換位置,繼續比較,直到將最小的元素交換到第乙個位置,再從第二個開始與後面...

C語言 氣泡排序演算法

氣泡排序演算法 基本思想 相鄰位置元素兩兩比較,順序相反則進行交換,每一輪會將最小或最大的元素 浮 到頂端,最終達到完全有序。排序原理圖 演算法實現 include void bubblesort int arr,int sz if flag 1 break void printarr int ar...

C語言 氣泡排序演算法

目的 將輸入的陣列按照從小到大氣泡排序。思路 從第1個數開始,依次與後乙個數比較,將最大的乙個數放在最後 繼續從第1個數開始,依次與後乙個比較,將最大的乙個數倒數第二個 依次類推 int bubble int a,int n return0 brief 測試冒泡程式 author mculover6...