C語言子函數(shù)冒泡排序 C語言冒泡排序

冒泡排序法C語言解釋。

冒泡排序是一種最簡單的排序方法,通過比較相鄰的元素,若發(fā)生倒序,則交換,使最大值沉到最后。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,江陰企業(yè)網(wǎng)站建設,江陰品牌網(wǎng)站建設,網(wǎng)站定制,江陰網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,江陰網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

其空間復雜度為O(1),時間復雜度為O(n2)。冒泡排序是一種穩(wěn)定的排序。

用于順序或者鏈式存儲結構,平均時間性能比直接插入差。當初始記錄無序且n較大時,不宜采用此方法。

順序表創(chuàng)建。

冒泡排序算法。

初始化flag為1表示數(shù)組無序,當數(shù)組無序并且數(shù)組長度大于1的時候,執(zhí)行循環(huán)。

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++) /*進行9次循環(huán) 實現(xiàn)9趟比較*/

for(i=0;i9-j;i++) /*在每一趟中進行9-j次比較*/

if(a[i]a[i+1]) /*相鄰兩個數(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]);

}

擴展資料:

冒泡排序算法的運作

1、比較相鄰的元素。如果第一個比第二個大(?。?,就交換他們兩個。

2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。這步做完后,最后的元素會是最大(?。┑臄?shù)。

3、針對所有的元素重復以上的步驟,除了最后已經(jīng)選出的元素(有序)。

4、持續(xù)每次對越來越少的元素(無序元素)重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較,則序列最終有序。

簡單的表示

#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語言編程——冒泡排序法。要求:由主函數(shù)調(diào)用排序子函數(shù),對n個整數(shù)進行從小到大的排序,謝了

#includestdio.h

void sort(int a[],int n)

{

int i;

int j;

for(i=1;in;i++) //n個程序 排n-1次

{

for(j=0;jn-i;j++)

{

if(a[j]a[j+1]) //從小到達,前面的比后面的大,則互換。

{

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;

}

用C語言的函數(shù)做冒泡法排序

太簡單,懶得答,抄來的:

Bubble Sort(冒泡法)

最簡單的排序方法是冒泡排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮。在冒泡排序算法中我們要對這個“氣泡”序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,并時刻注意兩個相鄰的元素的順序是否正確。如果發(fā)現(xiàn)兩個相鄰元素的順序不對,即“輕”的元素在下面,就交換它們的位置。顯然,處理一遍之后,“最輕”的元素就浮到了最高位置;處理二遍之后,“次輕”的元素就浮到了次高位置。在作第二遍處理時,由于最高位置上的元素已是“最輕”元素,所以不必檢查。一般地,第i遍處理時,不必檢查第i高位置以上的元素,因為經(jīng)過前面i-1遍的處理,它們已正確地排好序。這個算法可實現(xiàn)如下。

Bubble Sort程序:

STL C++程序:(VC++6.0通過)

#include "stdafx.h"

#include "iostream.h"

templateclass T

class doit{

private:

int x,y;

T temp;

public:

doit(T* in,int count)

{

for(y=0;ycount-1;y++)

{

for(x=1;xcount-y;x++)

{

if((*(in+x))(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

};

int main()

{

double a[4]={1.1,1.3,1.9,2.2};

doitdouble d(a,4);

for(int i=0;i4;i++)

{

couta[i]endl;

}

return 0;

}

C語言程序:(TC 2.0通過)

void doit(float* in,int count)

{

int x;

int y;

float temp;

for(y=0;ycount-1;y++)

{

for(x=1;xcount-y;x++)

{

if((*(in+x))(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

C語言冒泡排序法代碼

冒泡排序是排序算法的一種,思路清晰,代碼簡潔,常被用在大學生計算機課程中?!懊芭荨边@個名字的由來是因為越大的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端,故名。這里以從小到大排序為例進行講解?;舅枷爰芭e例說明

冒泡排序的基本思想就是不斷比較相鄰的兩個數(shù),讓較大的元素不斷地往后移。經(jīng)過一輪比較就,選出最大的數(shù);經(jīng)過第2輪比較,就選出次大的數(shù),以此類推。下面以對 3 2 4 1 進行冒泡排序說明。

1.這個算法用rand函數(shù)產(chǎn)生新的要排序的數(shù)據(jù),與已有的有序數(shù)列中的數(shù)據(jù)依次比較,如果遇到比他大的數(shù)據(jù),就從該數(shù)據(jù)開始,一直交換到末尾,達到一個插入的效果。從而形成有序的數(shù)列。

2.此外,只用rand函數(shù)并不能達到真正隨機的效果。如果要實現(xiàn)真正隨機的效果,還要配合srand函數(shù)才行。

3.具體代碼如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("請輸入一個種子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i++) 。

C語言冒泡排序

C語言冒泡排序法的排序規(guī)則:將被排序的記錄數(shù)組R[1..n]垂直排列,每個記錄R看作是重量為R.key的氣泡。根據(jù)輕氣泡不能在重氣泡之下的原則,從下往上掃描數(shù)組R:凡掃描到違反本原則的輕氣泡,就使其向上"飄浮"。如此反復進行,直到最后任何兩個氣泡都是輕者在上,重者在下為止。初始 R[1..n]為無序區(qū)。第一趟掃描 從無序區(qū)底部向上依次比較相鄰的兩個氣泡的重量,若發(fā)現(xiàn)輕者在下、重者在上,則交換二者的位置。即依次比較(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);對于每對氣泡(R[j+1],R[j]),若R[j+1].key void sort(int *a,int len) {int i=0; int j; int t; for(i=0;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } int main(int argc, char *argv[]) { int a[10]={ -999,2,3,77,12,88,0,-8,99,100 }; int i=0; sort(a,10); for(i=0;i10;i++) { printf("%d ",a[i]); } return 0; }

網(wǎng)頁名稱:C語言子函數(shù)冒泡排序 C語言冒泡排序
分享網(wǎng)址:http://www.muchs.cn/article48/dooddep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、域名注冊、企業(yè)網(wǎng)站制作、移動網(wǎng)站建設、企業(yè)建站搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管