c語言冒泡排序方法默寫?
冒泡排序的原理是:從左到右,比較相鄰的元素。每次比較一輪,都會(huì)找到序列中最大的或者最小的。這個(gè)數(shù)字將從序列的最右邊出現(xiàn)。
以從小到大排序?yàn)槔?,第一輪比較后,所有數(shù)字中最大的數(shù)字會(huì)向最右邊浮動(dòng);第二輪比較后,所有數(shù)字中第二大的數(shù)字將浮動(dòng)到倒數(shù)第二位.....如此一輪又一輪的對比,最后從小到大排序。
例如,按從小到大的順序?qū)σ韵滦蛄羞M(jìn)行排序:
9021132-5834
第一輪:
1)如果90比21的比率是90gt21,則它們互換:
2190132-5834
2)如果90比132的比例是90lt132,則不需要交換位置。
3)當(dāng)132與–58的比率為132gt–58時(shí),它們互換:
2190-5813234
4)當(dāng)132與34之比為132gt34時(shí),則它們互換:
2190-5834132
至此,第一輪結(jié)束。第一輪的結(jié)果是找到序列中最大的數(shù),并向最右邊浮動(dòng)。
比較時(shí),每輪的第n次比較是第n個(gè)元素與新序列中第n個(gè)元素的比較(如果n從1開始)。
第二輪:
1)如果21比90的比例是21lt90,則不需要交換位置。
2)如果90與–58的比率是90gt–58,則它們互換:
21-589034132
3)如果90比34的比率是90gt34,則它們互換:
21-583490132
第二輪到此結(jié)束。第二輪的結(jié)果是找到序列中第二大的數(shù),并浮動(dòng)到最右邊的第二個(gè)位置。
第三輪:
1)當(dāng)21與–58的比率為21gt–58時(shí),它們互換:
-58213490132
2)如果21比34的比例是21lt34,則不需要交換位置。
至此,第三輪結(jié)束。第三輪的結(jié)果是找到序列中第三大的數(shù),并浮動(dòng)到最右邊的第三個(gè)位置。
第四輪:1)-58和21,-58lt21,你不Idon'我不需要換位置。至此,整個(gè)序列被排序。從小到大的順序是"–58213490132"。從這個(gè)例子還可以得出結(jié)論,如果有n個(gè)數(shù)據(jù),那么只需要比較n-1輪。而你沒有。;除了第一輪,我不需要比較所有的回合。因?yàn)楸容^了前面幾輪后,被比較的幾輪已經(jīng)找到了該輪中最大的數(shù),并且向右浮動(dòng),所以不用比較就知道右邊的數(shù)大。
C語言中什么叫氣泡法排序?
c語言冒泡排序(冒泡法)
冒泡方法的種類是c。語言中的簡單排序算法。
定義:它反復(fù)訪問要排序的元素的列,依次比較兩個(gè)相鄰的元素,使較大的元素逐漸后退(交換兩個(gè)元素的值),直到數(shù)組的末尾。重復(fù)此操作,直到?jīng)]有要交換的元素(即從小到大排序)。
想法:
有n個(gè)數(shù)字,每輪替換一個(gè)數(shù)字。假設(shè)最大數(shù)在第一個(gè),需要替換n-1輪。此時(shí),最大數(shù)量已經(jīng)在底部,
于是第二輪替換少一輪,以此類推;
在函數(shù)和數(shù)組中
#包含ltstdio.hgt
VoidBubble(intfoam[])//冒泡排序
intmain()
{
給泡沫上色
色調(diào)I
Tfor(i0ilt9i)//動(dòng)態(tài)賦值
t{
ttscanf(#34%d#34,ampfloss[I])
t}
tbuble(frost)//數(shù)組地址傳遞
返回0
}
空泡(intfoam[])
{
色調(diào)t
色調(diào)j,k
Tfor(j0jlt9j)//9個(gè)周期。
t{
Ttfor(k0klt9-jk)//減去循環(huán)數(shù)。
tt{
Ttif(foam[k]gtfoam[k1])//假設(shè)前一個(gè)數(shù)大于后一個(gè)數(shù),如果為真,則替換;
ttt{
ttttt泡沫[k]
泡沫,泡沫
TTT泡沫[k1]t
ttt}
tt}
t}
tputchar(#39
#39)
Tfor(j0jlt9j)//輸出被替換的值。
t{
ttprintf(#34#34,泡沫[j])
t}
}
在數(shù)組中
#包含ltstdio.hgt
voidmain()
{
Tinta[8]//定義數(shù)組
色調(diào)I,k
色調(diào)t//替代變量
Tprintf(#34輸入8個(gè)整數(shù):#34)
tfor(ioILT7I)//數(shù)組賦值
t{
ttscanf(#34%d#34,ampa[i])
t}
tfor(k0klt7k)
t{
TTfor(Ioilt7-ki)
tt{
tttif(a[i]gta[i1])
ttt{
ttttta[i]
ttta[i]a[i1]
tttta[i1]t
ttt}
tt}
t}
tfor(ioILT7I)//輸出
t{
ttprintf(#34%d
#34,a[i])
t}
}