看板 Programming
作者 標題 氣泡排序法
時間 2010年04月23日 Fri. AM 12:19:19
分享自己寫的
希望有助於幫助大家了這種排序的方式
這種方是主要是用於"前面如果比較大的話 就跟後面那一項交換的原則"
#include<iostream>
#include<stdlib.h>
//使用srand(() ) 和 rand()
#include<time.h>
//使用隨時間變化
#include<iomanip>
//使用setw()
using namespace std;
int main()
{
srand((unsigned)time);
int numbers[10]={0};
int times=0;
int change1 , change2;
int temp;
for(times=0;times<=9;times++)
{
numbers[times]=(rand()%100)+1;
cout<<'|'<<setw(3)<<numbers[times];
//原始產生的亂數
}
cout<<endl;
for (change1=0;change1<=9;change1++)
//重新第一個交換
{
for (change2=0;change2<=8;change2++)
//相鄰兩數字交換
{
if(numbers[change2]>numbers[change2+1])
//如果前項大於後項的話交換
{
temp=numbers[change2];
numbers[change2]=numbers[change2+1];
numbers[change2+1]=temp;
}
cout<<'|'<<setw(3)<<numbers[change2];
}
cout<<'|'<<setw(3)<<numbers[change2]<<endl;
}
return 0;
}
--
※ 來源: DISP BBS 看板: Programming 文章連結: http://disp.cc/b/33-1Jl
※ 作者: iloveyouever 來自: 163.22.18.79 時間: 2010-04-23 00:19:19
※ 看板: Programming 文章推薦值: 5 目前人氣: 0 累積人氣: 657
3樓 時間: 2013-08-20 04:10:18
推
08-20 04:10
有點懷念><距離我學的這個程式手法有將近2年的時間了OAO 因為很少接觸到變的生疏了..慚愧((捂臉
4樓 時間: 2015-02-17 22:37:38 (香港)
→
02-17 22:37 HK
第二層迴圈的判斷可以改成change2<=8-change1 因為每次最大的項都會被換到後面不會再動了 另外swap的時候可以用a^=b;b^=a;a^=b;少用一個變數
回列表(←)
分享