冒泡排序(c++)
冒泡排序(Bubble Sort)
是一種計(jì)算機(jī)科學(xué)領(lǐng)域的較簡單的排序算法。
它重復(fù)地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來。走訪元素的工作是重復(fù)地進(jìn)行直到?jīng)]有相鄰元素需要交換,也就是說該元素列已經(jīng)排序完成。
這個算法的名字由來是因?yàn)樵叫〉脑貢?jīng)由交換慢慢“浮”到數(shù)列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。
當(dāng)然,冒泡排序也可以進(jìn)一步優(yōu)化
#include<iostream> using namespace std; void bubble_sort(int* a,int n) {for (int i = 0; i < n-1; i++)//輪數(shù){int flag = 0;//記錄是否進(jìn)行交換的標(biāo)志位for (int j = 0; j < n - i - 1; j++)//每輪進(jìn)行比較的次數(shù){if (a[j] > a[j + 1]){swap(a[j], a[j + 1]);flag = 1;}}if (flag == 0)//如果一輪沒有交換,則說明該序列已經(jīng)是升序{break;}} } void main() {int a[10]{ 3,6,4,2,11,10,5 };bubble_sort(a, 7);for (int i = 0; i < 7; i++){cout << a[i]<<" ";} }總結(jié)
- 上一篇: 自己动手制作一门语言(1)波罗语
- 下一篇: dict keys 取最后一个_一步一步