c 氣泡排序法,C 氣泡排序方法

2021-05-06 03:19:40 字數 5967 閱讀 6927

1樓:

#define true 1

#define false 0

typedef int keytype;

typedef struct

recordtype;

void bubblesort(recordtype r,int length)}}

2樓:匿名使用者

#include

void reversal(int x,int n)}}}int main()

cout<<"排序後:";

reversal(a,3);

for (int j = 0;j<3;j++)cout<

return 0;

}很簡單應該看的懂吧

3樓:

#include

using namespace std;

void main()

;//數可以自己換

for(int i=0;i<3;i++)}}for(int i=0;i<3;i++)}

c++氣泡排序方法

4樓:gta小雞

所謂氣泡排序,就是在一趟迴圈中不斷比較兩個相鄰元素,並將其中最小(或最大)的那個一直交換到陣列尾部的過程,這個過程就像氣泡從水底一直浮到水面,所以叫氣泡排序。既然是比較兩個相鄰元素,那麼ace[j]

5樓:蘇忠鵬

這種問題你在紙上走一遍流程就知道了

c++ 程式設計輸入8個正整數,然後用氣泡排序法自動按從小到大的順序輸出. 急急急!!!

6樓:動漫

#include

int mian()

// 氣泡排序專的核心部分

for (i = 1; i <= n - 1; i++)// n個數排序,只用進行屬n-1次}}

for (i = 1; i <= n; i++)// 輸出結果system("pause");

return 0;}

7樓:砍侃看

#include

using namespace std;

int main()

for(int i=0;i<8;++i)}}for(int i=0;i<8;++i)

cout<

8樓:匿名使用者

void bubblesort(int arr,int n)

{int i,j,t;

for(i=0;i

c++ 氣泡排序法

9樓:凌亂心扉

**:#include

using namespace std;

void print(int arr,int n)cout<}

void bubblesort(int arr,int n)}}}int main()

;cout<<"初始序列:";

print(s,10);

bubblesort(s,10);

cout<<"排序結果:";

print(s,10);

system("pause");}

10樓:豌豆

#include"iostream"

using namespace std;

int main()

cout << endl;

for (j=1;j<=9;j++)}}

cout << "有小到大:";

for (i=1;i<=10;i++)

system("pause");

return 0;}

11樓:滄海雄風

你的冒泡copy雙迴圈顯然寫的不對

冒泡的bai經典寫法du是這樣的 自行體會 一句話兩句話說不清楚 可以zhi查資料

dao看看為什麼要這樣寫

如果實在理解不了就死記硬背吧

// for (i=0;i<5-1;i++)//

// }

// }

12樓:韓濤董青

第二個for迴圈作用 第一次結

束后將最大的數放置最後 第二次結束後將第二大內數放到倒數第二的位容置 以此類推 相應的 迴圈的次數應該越來越少 因為大數逐漸排列好了 所以j<9-i   還有啊 c++ #include 列印a[i]的for迴圈拿出來

13樓:匿名使用者

#include

#include

#include

main()

}for(k = 0;k < 10;k++) cout << a[k] << " ";

cout << endl;

}return 0;}

14樓:卡諾球

void bubble_sort(int arrary, int n)

}if (flag == 1)

break;

}return;}

15樓:匿名使用者

j<=i,意思是:j的最大範圍是和i相等.

16樓:匿名使用者

for(j=0;j<=i;j++) 應該為 for(j=0;j<=9-i;j++)

c++氣泡排序法

17樓:諸曄苑暄

const

intsize=(sizeof(a)/sizeof(a[0]));這句是對的,錯的是你的排序體

這裡a有10個元素,即size=10;

首先說一下氣泡排序法的思想:設為降序排序a[0]>a[1]>.....

1.a是乙個無序的序列。如果a是已經降序排序好的,我們也設為無序,即

它作為乙個序列引數,人可以看出他是有序的,但程式把它作為引數,要

經過氣泡排序,程式才能認為得到的結果序列是乙個有序的序列。

2.選出序列中第一大元素作為a[0]:

3.原序列分為兩個子串行:a[0]子串行有序,a[1]...a[n]無序

4.在無序的子串行a[1]...a[n]中選出最大元素作為a[1],將a[1]加入有序子

序列中,形成a[0]>a[1]

5.重複234

你的程式中排序部分有問題:

for(int

i=0;ia[j+1])

//這個比較條件有問題,設i=0,j=1,a[j]與a[j+1]的

//大小關係與a[i]有什麼關係呢

////////////改為///////////////////////

for(int

i=0;ia[i])

但是這種比較太頻繁,開銷太大

這是我個人自己寫的喲,請給我分啊

///////////////////////

for(int

i=size-1;i>0;i--)

for(int

j=0;ja[j+1])

說一下樓上的,j++一次就定義一次int

t;又刪除一次t,開銷大得很

18樓:集之達含雙

第二個for迴圈作用

第一次結束後將最大的數放置最後

第二次結束後將第二大數放到倒數第二的位置

以此類推

相應的迴圈的次數應該越來越少

因為大數逐漸排列好了

所以j<9-i   還有啊

c++#include

列印a[i]的for迴圈拿出來

19樓:匿名使用者

問題出在這

if(a[j]>a[j+1])

應改為:

if(a[j]>a[j+1])

另外還有一處問題:for(int j=0;ja[j+1])當i=0時,j=size-1時,a[j]>a[j+1],此時j+1=size,陣列訪問越界了!!!

所以應改為:for(int j=0;j

86 123 213 234 344 423 432 567 568 987

press any key to continue

20樓:無盡的華爾茲

你太多地方錯誤,我除錯完畢,是從小到大排,如果要相反你自己應該會了吧:

#include

using namespace std;

int main()

;int size=(sizeof(a)/sizeof(a[0]));

for(int i=size-1;i>0;i--)for(int j=0;ja[j+1])

}for(i=0;i

cout<

cout<

return 0;}

21樓:匿名使用者

size不對,你除錯一下,應該是sizeof(a)和你希望得到的值不一樣

氣泡排序法c++演算法

22樓:rf饒烽

//以下就是c++氣泡排序

int* bubblesort(int* ary, int length)}}

return ary;}

23樓:無數龍

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;改為:

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

24樓:匿名使用者

去掉"int n",因為陣列列數不能為變數

25樓:匿名使用者

建議形參中int n去掉,在函式裡面加上int n=strlen(a);

第乙個迴圈for(i=0;i

第二個迴圈for(j=0;j

26樓:

第乙個for迴圈改為:for(int i=0;i

使用c++隨機函式rand()生成n個數,採用氣泡排序法.選擇排序法這兩種方法對n個數進行排序

27樓:匿名使用者

#include

#include

#include

using namespace std;void maopao_sort(int array ,int n)}}

}void select_sort(int array,int n)

}if(small!=i)

}}void main()

select_sort(num_ary ,sizeof(num_ary)/4);//選擇排序從小到大 cout << "選擇排序從小到大:" << endl;

for(int i = 0 ; i < sizeof(num_ary)/4 ;i++)

cout << endl; maopao_sort(num_ary ,sizeof(num_ary)/4);//氣泡排序從大到小

cout << "氣泡排序從大到小:" << endl;

for(int i = 0 ; i < sizeof(num_ary)/4 ;i++)}

c++氣泡排序法求5個數字中的最大值怎麼寫?

28樓:笑談詞窮

int a[5]= ;

int max=0;

for (int i = 0; i < 5; i++)

29樓:匿名使用者

for (int i=0;ia[j+1])

}return a[strlen(a)-1]

用指標實現氣泡排序,用指標方法完成氣泡排序函式。

相當地彆扭 我覺得利用指標來移動,而不是通過 i j 這兩個下標 define null 0 void orderbypointer const int array while p1 null if length 0 for int i 0 i p2 p2 這樣會不會好點?也沒見著有多麻煩啊.這不挺...

c語言指標的方法對一維陣列進行氣泡排序

大概思路 用指標p指向 陣列的首位址,用指標去引用陣列中的各個元素,並對陣列中各個元素就行運算和比較操作了,可以參照如下 include include int main p array printf 排序前為 n for i 0 i 5 i p array for i 0 i 4 i printf...

C語言 編寫函式用氣泡排序法對陣列中的資料進行從小到大的排序

int i,j,temp for i 0 ia j 1 之間寫這個 編寫函式用氣泡排序法對陣列中的n個資料進行從小到大的排序。1 新建乙個163.php。2 輸入php網頁的結構 3 宣告php與瀏覽器互動的檔案型別和編碼。4 使用 array 函式定義乙個 numbers陣列。5 使用 sort ...