#includestdio.h
創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供新疆網(wǎng)站建設(shè)、新疆做網(wǎng)站、新疆網(wǎng)站設(shè)計(jì)、新疆網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、新疆企業(yè)網(wǎng)站模板建站服務(wù),十余年新疆做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
void sort(int a[],int n)
{
int i;
int j;
for(i=1;in;i++) //n個(gè)程序 排n-1次
{
for(j=0;jn-i;j++)
{
if(a[j]a[j+1]) //從小到達(dá),前面的比后面的大,則互換。
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main()
{
int a[10]={1,3,5,7,9,2,4,6,8,10};
sort(a,10);
int i;
for(i=0;i10;i++)
{
printf("%d ",a[i]);
}
getchar();
return 0;
}
================================================
功能:冒泡排序
輸入:數(shù)組名稱(也就是數(shù)組首地址)、數(shù)組中元素個(gè)數(shù)
================================================
*/
/*
====================================================
算法思想簡(jiǎn)單描述:
在要排序的一組數(shù)中,對(duì)當(dāng)前還未排好序的范圍內(nèi)的全部數(shù),自上
而下對(duì)相鄰的兩個(gè)數(shù)依次進(jìn)行比較和調(diào)整,讓較大的數(shù)往下沉,較
小的往上冒。即:每當(dāng)兩相鄰的數(shù)比較后發(fā)現(xiàn)它們的排序與排序要
求相反時(shí),就將它們互換。
下面是一種改進(jìn)的冒泡算法,它記錄了每一遍掃描后最后下沉數(shù)的
位置k,這樣可以減少外層循環(huán)掃描的次數(shù)。
冒泡排序是穩(wěn)定的。算法時(shí)間復(fù)雜度O(n2)--[n的平方]
=====================================================
*/
void bubble_sort(int x[], int n)
{
int j, k, h, t;
for (h=n-1; h0; h=k) /*循環(huán)到?jīng)]有比較范圍*/
{
for (j=0, k=0; jh; j++) /*每次預(yù)置k=0,循環(huán)掃描后更新k*/
{
if (*(x+j) *(x+j+1)) /*大的放在后面,小的放到前面*/
{
t = *(x+j);
*(x+j) = *(x+j+1);
*(x+j+1) = t; /*完成交換*/
k = j; /*保存最后下沉的位置。這樣k后面的都是排序排好了的。*/
}
}
}
}
#includestdio.h
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers:\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
for(j=0;j9;j++) /*進(jìn)行9次循環(huán) 實(shí)現(xiàn)9趟比較*/
for(i=0;i9-j;i++) /*在每一趟中進(jìn)行9-j次比較*/
if(a[i]a[i+1]) /*相鄰兩個(gè)數(shù)比較,想降序只要改成a[i]a[i+1]*/
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers:\n");
for(i=0;i10;i++)
printf(" %d",a[i]);
}
擴(kuò)展資料:
冒泡排序算法的運(yùn)作
1、比較相鄰的元素。如果第一個(gè)比第二個(gè)大(?。?,就交換他們兩個(gè)。
2、對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是最大(小)的數(shù)。
3、針對(duì)所有的元素重復(fù)以上的步驟,除了最后已經(jīng)選出的元素(有序)。
4、持續(xù)每次對(duì)越來(lái)越少的元素(無(wú)序元素)重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較,則序列最終有序。
簡(jiǎn)單的表示
#include stdio.h
void swap(int *i, int *j)
{
int temp = *i;
*i = *j;
*j = temp;
}
int main()
{
int a[10] = {2,1,4,5,6,9,7,8,7,7};
int i,j;
for (i = 0; i 10; i++)
{
for (j = 9; j i; j--)//從后往前冒泡
{
if (a[j] a[j-1])
{
swap(a[j], a[j-1]);
}
}
}
for (i = 0; i 10; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
參考資料來(lái)源:冒泡排序-百度百科
文章題目:c語(yǔ)言冒泡排序子函數(shù) c語(yǔ)言冒泡法排序字符
標(biāo)題網(wǎng)址:http://chinadenli.net/article20/ddeogjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、標(biāo)簽優(yōu)化、ChatGPT、搜索引擎優(yōu)化、網(wǎng)站策劃、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)