冒泡排序(c++)
冒泡排序(Bubble Sort)
是一種計算機科學領域的較簡單的排序算法。
它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來。走訪元素的工作是重復地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。
這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。
當然,冒泡排序也可以進一步優化
#include<iostream> using namespace std; void bubble_sort(int* a,int n) {for (int i = 0; i < n-1; i++)//輪數{int flag = 0;//記錄是否進行交換的標志位for (int j = 0; j < n - i - 1; j++)//每輪進行比較的次數{if (a[j] > a[j + 1]){swap(a[j], a[j + 1]);flag = 1;}}if (flag == 0)//如果一輪沒有交換,則說明該序列已經是升序{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]<<" ";} }總結
- 上一篇: 自己动手制作一门语言(1)波罗语
- 下一篇: C++学习之路 | PTA乙级—— 10