C語言各種排序思想

2021-08-26 11:55:00 字數 903 閱讀 5335

1、氣泡排序

如果是公升序,就是把最大的數排到末尾,末尾下標向前移動,利用相鄰數字比較大小實現把最大的數排到末尾,a[j]和a[j+1]比較大小,如果a[j+1]大則交換。這樣兩兩交換下來,最後乙個肯定最大,最後乙個已經排好,下次迴圈不用再排,所以下標做減一操作。

#include

#include

int main();

int n=sizeof(a)/sizeof(int)-1;

for(int i=n;i>0;i--)}}

//printf("%d  ",sizeof(a)/sizeof(int)-1);

for(int i=0;i<=n;i++)

printf("%d ",a[i]);

}2、選擇排序

若公升序,每次把最小的放在前面,在陣列中找最小的,遍歷一遍,記錄最小值和下標,賦給a[0],然後再遍歷一遍,賦給a[1],重複。

#include

int main()

;int n=sizeof(a)/sizeof(int)-1;

for(int i=0; i<=n; i++)

}int x=a[i];

a[i]=a[xiabiao];

a[xiabiao]=x;

}for(int i=0;i<=n;i++)

printf("%d ",a[i]);

}3、插入排序

後面的與前面的所有都比較,小就交換,像給紙牌排序,鬥地主給排排序,插入牌,排大小。

#include

int main();

int n=sizeof(a)/sizeof(int)-1;

for(int i=0;i<=n;i++)

}for(int i=0;i<=n;i++)

return 0;

}

c語言各種排序加標註

大佬莫看 1.氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地走 訪過要排序的數列,一次比較兩個元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。1 比較相鄰的元素。如果第乙個比第二個大 小 就交換他們兩個。2 對每一對相鄰元素作同樣的工作,從開始第一對...

各種排序,白話版原理思想

內部排序 一般來說 存在不相鄰交換的排序演算法是不穩定的,相鄰交換的排序演算法是穩定的 對於相鄰交換的穩定排序演算法,通過控制交換條件可以轉換成不穩定排序演算法 冒泡 插入 歸併和基數排序是穩定的 選擇 快速 希爾和堆排序是不穩定的。一 氣泡排序 從陣列的頭部開始迴圈,判斷相鄰的兩個元素,如果前乙個...

C語言實現各種排序演算法

對輸入的n個數進行排序並輸出。輸入描述 輸入的第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。輸出描述 可能有多組測試資料,對於每組資料,將排序後的n個整數輸出,每個數後面都有乙個空格。每組測試資料的結果佔一行。輸入例子 4 1 4 3 2 輸出例子 1 2 3 4 ac code ...