c語言調(diào)用函數(shù)起泡法排序,c語言調(diào)用函數(shù)冒泡排序

C語言:編寫一個(gè)程序用冒泡排序?qū)崿F(xiàn)升序排列

程序如下:

創(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。

參考資料來源:百度百科-冒泡排序

c語言,寫一個(gè)函數(shù),用起泡法對(duì)輸入的10個(gè)字符按從小到大順序排列

#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%。

C語言冒泡排序。

#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語言冒泡排序法是什么?

冒泡排序法,是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)

外貿(mào)網(wǎng)站建設(shè)