c++冒泡排序代码_C/C++基础之冒泡排序
排序算法作為編程語言中最基礎(chǔ)的算法,在很多高級(jí)語言中系統(tǒng)都封裝了sort方法,并提供自定義比較方法排序。但是,這背后是怎么實(shí)現(xiàn)的你真的知道嗎?接下來幾篇就給大家講一講C/C++里面最基礎(chǔ)的集中數(shù)組排序方法實(shí)現(xiàn)吧。
冒泡排序
冒泡排序:顧名思義就是向氣泡冒出來一樣,誰大誰出來,在數(shù)組排序里就是誰大誰往后走。就像當(dāng)初老師給我們排隊(duì)的時(shí)候一樣,按身高將一個(gè)最高個(gè)從前挨個(gè)比一直往后排
假設(shè)現(xiàn)在有一個(gè)數(shù)組{50,26,74,60,12,1,100}冒泡排序算法是怎么做的呢?
前一個(gè)跟后一個(gè)去比較大小,如果前一個(gè)比后一個(gè)大,則前面的跟后面的交換位置,再繼續(xù)往后比,知道數(shù)組結(jié)束。我們看代碼實(shí)現(xiàn):
我們看運(yùn)行結(jié)果:
排序成功。這里需要注意的一點(diǎn)就是第二個(gè)循環(huán)位置的循環(huán)條件for (int j = 0; j < sizeof(arr)/sizeof(int)-1-i; j++)這里一定要注意每比較完一趟后,后面的數(shù)已經(jīng)是最大的了,已經(jīng)排好了,再進(jìn)行下一趟的時(shí)候我們就不需要再去跟它們比較了。并且由于比較里面已經(jīng)取了j+1這個(gè)下標(biāo)一定記得在循環(huán)條件里減1,不然就會(huì)越界
附上原代碼:
#include
#include
using namespace std;
int main()
{
int arr[7] = {50,26,74,60,12,1,100};
//這個(gè)循環(huán)式控制比較趟數(shù),每趟都需要找出來一個(gè)最大的(除了已經(jīng)排好的)
for (int i = 0; i < sizeof(arr)/sizeof(int)-1; i++)
{
//這個(gè)循環(huán)就是我在圖示中表示的過程,最大的從前往后滾
for (int j = 0; j < sizeof(arr)/sizeof(int)-1-i; j++)
{
if(arr[j]>arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp ;
}
}
}
//我們來輸出一下看看排序成功沒
for (int i = 0; i < sizeof(arr)/sizeof(int); i++)
{
cout<
}
system("pause");
return 0 ;
}
總結(jié)
以上是生活随笔為你收集整理的c++冒泡排序代码_C/C++基础之冒泡排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js最小化浏览器_Handtrack.j
- 下一篇: 安装python3.8.0步骤_pyth