冒泡排序(C++)
基于C++的冒泡排序,用動態陣列實作用戶輸入任意個資料并輸出從小到大排序
基本原理
冒泡排序演算法的原理如下:
- 比較相鄰的元素,如果第一個比第二個大,就交換他們兩個,
- 對每一對相鄰元素做同樣的作業,從開始第一對到結尾的最后一對,在這一點,最后的元素應該會是最大的數,
- 針對所有的元素重復以上的步驟,除了最后一個,
- 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較,
圖解原理

動圖展示

程式實作
其中i,j為回圈變數,n為資料個數,t為臨時交換變數
外層回圈n-1次,內層回圈n-i-1次
#include <iostream>
using namespace std;
int main()
{
int i,j,n,t;
cout<<"輸入排序資料個數:";
cin>>n;
int *p=new int[n];
for(i=0;i<n;i++)
{
cin>>*(p+i);
}
cout<<endl;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{if(*(p+j)>*(p+j+1))//如果從大到小排序將>改為<
{t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}
}
}
cout<<"從小到大排序為:"<<endl;
for(i=0;i<n;i++)
{
cout<<*(p+i)<<endl;
}
delete []p;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/64785.html
標籤:其他
