程序如下:
創(chuàng)新互聯(lián)公司主營(yíng)洛江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開發(fā),洛江h(huán)5成都小程序開發(fā)搭建,洛江網(wǎng)站營(yíng)銷推廣歡迎洛江等地區(qū)企業(yè)咨詢
#include stdio.h
int main ()
{
int a[10];
int i, j, t;
printf ("請(qǐng)輸入十個(gè)數(shù):\n");
for (i = 0; i 10; i++)
{
printf ("a[%d]=", i+1);
scanf ("%d",a[i]);
}
for (j = 0;j 9; j++)
for (i = 0; i 9 - j; i++)
if (a[i] a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
printf ("由小到大的順序?yàn)椋篭n");
for (i = 0; i 10; i++)
{
printf ("%d,",a[i]);
}
printf ("\n");
return 0;
}
運(yùn)行結(jié)果
請(qǐng)輸入十個(gè)數(shù):
a[1]=7
a[2]=8
a[3]=9
a[4]=6
a[5]=5
a[6]=4
a[7]=1
a[8]=2
a[9]=3
a[10]=99
由小到大的順序?yàn)椋?/p>
1,2,3,4,5,6,7,8,9,99。
冒泡排序算法的原理如下:
1、比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
2、對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。
3、針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
4、持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。
擴(kuò)展資料:
冒泡排序的思想:
首先,從表頭開始往后掃描數(shù)組,在掃描過程中逐對(duì)比較相領(lǐng)兩個(gè)元素的大小。若相鄰兩個(gè)元素中,前面的元素大于后面的元素,則將它們互換,?稱之為清去了一個(gè)逆序。
在掃描過程中,不斷地將兩相鄰元素中的大者往后移動(dòng),最后就將數(shù)組中的最大者換到了表的最后,這正是數(shù)組中最大元素應(yīng)有的位置。
然后,在剩下的數(shù)組元素中(n-1個(gè)元素)重復(fù)上面的過程,將次小元素放到倒數(shù)第2個(gè)位置。不斷重復(fù)上述過程,直到剩下的數(shù)組元素為0為止,此時(shí)的數(shù)組就變?yōu)榱擞行颉?/p>
假設(shè)數(shù)組元素的個(gè)數(shù)為西,在最壞情況下需要的比較總次數(shù)為:?(n-1)+(n-?2)...+2+1)-?n(n-1)/2。
參考資料來源:百度百科-冒泡排序
#include stdio.h
#include stdlib.h
void sort(char s[], int n);? ? ? ? ? ? ? ? ? ? ? //定義排序函數(shù)
int main()
{
char str[11];
printf("Please enter 10 charactor: ");? ? ? ?//輸入10個(gè)字符
gets(str);
sort(str, 10);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//調(diào)用排序函數(shù)
system("pause");
return 0;
}
//排序函數(shù)(起泡法)
void sort(char s[], int n)
{
for (int i=0; in-1; i++)
for (int j=0, t; jn-1-i; s[j]s[j+1]?t=s[j],s[j]=s[j+1],s[j+1]=t, j++ :j++);
printf("Sort array: ");
puts(s);
}
擴(kuò)展資料:
printf函數(shù)使用注意事項(xiàng)
1、域?qū)?/p>
%d:按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。
如果想輸出指定寬度可以指定域?qū)挘?md--gt;m域?qū)?打印出來以后,在控制臺(tái)上,顯示m位;
如果我們要打印的數(shù)的位數(shù)如果超過我們?cè)O(shè)定m則原樣輸出;
如果我們要打印的數(shù)的位數(shù)如果小于我們?cè)O(shè)定的位數(shù),則補(bǔ)空白,具體如下:
如果m為正數(shù),則左對(duì)齊(左側(cè)補(bǔ)空白);
如果m為負(fù)數(shù),則右對(duì)齊(右側(cè)補(bǔ)空白)。
2、轉(zhuǎn)義字符
如果想輸出字符"%",則應(yīng)該在“格式控制”字符串中用連續(xù)兩個(gè)%表示。
如:printf("%f%%",1.0/3);輸出結(jié)果:0.333333%。
#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ì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是最大(?。┑臄?shù)。
3、針對(duì)所有的元素重復(fù)以上的步驟,除了最后已經(jīng)選出的元素(有序)。
4、持續(xù)每次對(duì)越來越少的元素(無序元素)重復(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;
}
參考資料來源:冒泡排序-百度百科
冒泡排序法,是C語言常用的排序算法之一,意思是對(duì)一組數(shù)字進(jìn)行從大到小或者從小到大排序的一種算法。
具體方法是:
相鄰數(shù)值兩兩交換。從第一個(gè)數(shù)值開始,如果相鄰兩個(gè)數(shù)的排列順序與我們的期望不同,則將兩個(gè)數(shù)的位置進(jìn)行交換(對(duì)調(diào));如果其與我們的期望一致,則不用交換。重復(fù)這樣的過程,一直到最后沒有數(shù)值需要交換,則排序完成。
C語言常見的排序算法:
1、冒泡排序
基本思想:比較相鄰的兩個(gè)數(shù),如果前者比后者大,則進(jìn)行交換。每一輪排序結(jié)束,選出一個(gè)未排序中最大的數(shù)放到數(shù)組后面。
2、快速排序
基本思想:選取一個(gè)基準(zhǔn)元素,通常為數(shù)組最后一個(gè)元素(或者第一個(gè)元素)。從前向后遍歷數(shù)組,當(dāng)遇到小于基準(zhǔn)元素的元素時(shí),把它和左邊第一個(gè)大于基準(zhǔn)元素的元素進(jìn)行交換。在利用分治策略從已經(jīng)分好的兩組中分別進(jìn)行以上步驟,直到排序完成。
3、直接插入排序
基本思想:和交換排序不同的是它不用進(jìn)行交換操作,而是用一個(gè)臨時(shí)變量存儲(chǔ)當(dāng)前值。當(dāng)前面的元素比后面大時(shí),先把后面的元素存入臨時(shí)變量,前面元素的值放到后面元素位置,再到最后把其值插入到合適的數(shù)組位置。
4、直接選擇排序
基本思想:依次選出數(shù)組最小的數(shù)放到數(shù)組的前面。首先從數(shù)組的第二個(gè)元素開始往后遍歷,找出最小的數(shù)放到第一個(gè)位置。再?gòu)氖O聰?shù)組中找出最小的數(shù)放到第二個(gè)位置。以此類推,直到數(shù)組有序。
以上內(nèi)容參考? ?百度百科-排序算法、百度百科-c語言冒泡排序
分享題目:c語言調(diào)用函數(shù)起泡法排序,c語言調(diào)用函數(shù)冒泡排序
網(wǎng)站路徑:http://muchs.cn/article44/phiihe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站收錄、企業(yè)網(wǎng)站制作、定制網(wǎng)站、定制開發(fā)、微信小程序
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)