C++冒泡排序算法實例。本站提示廣大學習愛好者:(C++冒泡排序算法實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C++冒泡排序算法實例正文
冒泡排序
年夜學進修數據構造與算法最開端的時刻,就講了冒泡排序;可見這個排序算法是何等的經典。冒泡排序是一種異常簡略的排序算法,它反復地訪問過要排序的數列,每次比擬兩個數,依照升序或降序的規矩,比較較的兩個數停止交流。好比如今我要對以下數據停止排序:
10 3 8 0 6 9 2
當應用冒泡排序停止升序排序時,排序的步調是如許的:
3 10 8 0 6 9 2 // 10和3停止比較,10>3,交流地位
3 8 10 0 6 9 2 // 10再和8停止比較,10>8,交流地位
3 8 0 10 6 9 2 // 10再和0停止比較,10>0,交流地位
……
3 8 0 6 9 2 10 // 這個時刻,10達到了最左邊,是最年夜的數字,此時,我們在從頭開端停止比較
3 8 0 6 9 2 10 // 3小於8,所以不消交流地位
3 0 8 6 9 2 10 // 8年夜於0,所以交流地位
……
0 2 3 6 8 9 10
很簡略,就是讓年夜數沉入上面,小數漸漸上浮起來。冒泡排序的時光龐雜度也為O(n^2)。
代碼完成
#include <iostream>
using namespace std;
void BubbleSort(int arr[], int length)
{
int temp;
for (int i = 0; i < length; ++i)
{
for (int j = 0; j < length - i - 1; ++j)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[10] = {2, 4, 1, 0, 8, 4, 8, 9, 20, 7};
BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
{
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}