#includestdio.h
創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鐵東企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),鐵東網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
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]) //從小到達(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;
}
#include "stdio.h"
void fun(int a[],int n)
{ int i,j,t;
for(i=0; i3; i++)
for(j=0; jn-1-i; j++)
if(a[j]a[j+1])
{ t=a[j];
? a[j]=a[j+1];
? a[j+1]=t;
}
}
main()
{ int a[10],i;
for(i=0; i10; i++)
scanf("%d",a[i]);
fun(a,10);
for(i=0; i10; i++)
printf("%5d",a[i]);
printf("\n");
}
int?i,j,temp;
for(i=0;in-1;i++)
{
for(j=0;jn-1-i;j++)
{
if(a[j]a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
之間寫這個
太簡單,懶得答,抄來的:
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;
}
}
}
}
#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) 實現(xiàn)9趟比較*/
for(i=0;i9-j;i++) /*在每一趟中進(jìn)行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、比較相鄰的元素。如果第一個比第二個大(?。徒粨Q他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。這步做完后,最后的元素會是最大(小)的數(shù)。
3、針對所有的元素重復(fù)以上的步驟,除了最后已經(jīng)選出的元素(有序)。
4、持續(xù)每次對越來越少的元素(無序元素)重復(fù)上面的步驟,直到?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;
}
參考資料來源:冒泡排序-百度百科
冒泡法排序函數(shù)如下:
void bubble(int a[],int n)
{int i,j,t;
for(i=0;in-1;i++)/*共進(jìn)行n-1輪*/
for(j=0;jn-1-i;j++)/*每輪在前n-i個數(shù)中比較*/
if(a[j]a[j+1]) /*若相鄰元素逆序*/
{t=a[j]; a[j]=a[j+1];a[j+1]=t;}/*就交換*/
}
void sort(int *a, int left, int right)
{
if(left = right)/*如果左邊索引大于或者等于右邊的索引就代表已經(jīng)整理完成一個組了*/
{
return ;
}
int i = left;
int j = right;
int key = a[left];
while(i j) /*控制在當(dāng)組內(nèi)尋找一遍*/
{
while(i j key = a[j])
/*而尋找結(jié)束的條件就是,1,找到一個小于或者大于key的數(shù)(大于或小于取決于你想升
序還是降序)2,沒有符合條件1的,并且i與j的大小沒有反轉(zhuǎn)*/
{
j--;/*向前尋找*/
}
a[i] = a[j];
/*找到一個這樣的數(shù)后就把它賦給前面的被拿走的i的值(如果第一次循環(huán)且key是
a[left],那么就是給key)*/
while(i j key = a[i])
/*這是i在當(dāng)組內(nèi)向前尋找,同上,不過注意與key的大小關(guān)系停止循環(huán)和上面相反,
因為排序思想是把數(shù)往兩邊扔,所以左右兩邊的數(shù)大小與key的關(guān)系相反*/
{
i++;
}
a[j] = a[i];
}
a[i] = key;/*當(dāng)在當(dāng)組內(nèi)找完一遍以后就把中間數(shù)key回歸*/
sort(a, left, i - 1);/*最后用同樣的方式對分出來的左邊的小組進(jìn)行同上的做法*/
sort(a, i + 1, right);/*用同樣的方式對分出來的右邊的小組進(jìn)行同上的做法*/
/*當(dāng)然最后可能會出現(xiàn)很多分左右,直到每一組的i = j 為止*/
}
網(wǎng)頁標(biāo)題:冒泡法設(shè)計排序函數(shù)c語言 簡單冒泡排序算法c語言
文章分享:http://jinyejixie.com/article20/heheco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、用戶體驗、網(wǎng)站營銷、網(wǎng)站設(shè)計公司、搜索引擎優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)