C ++氣泡排序演算法
阿新 • • 發佈:2019-01-06
氣泡排序的原理:比較兩個相鄰的元素,將最大的元素交換至右端。
#include <iostream>
#include <stdlib.h>
using namespace std;
/****************************************************************/
/* 氣泡排序
/***************************************************************/
void swap(int array[], int j) // 位置互換函式
{
int temp = array [j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
void BubbleSort(int array[], int n) // 氣泡排序函式
{
for (int i = 0; i < n - 1; i++) // n - 1 為比較的輪數。
{
for (int j = 0; j < n - 1 - i; j++) // n - 1 - i 為每輪比較的次數。
{
if (array[j] > array[j + 1 ])
{
swap(array[j], array[j + 1]); //如果條件成立,就呼叫swap函式進行位置互換
}
}
}
}
int main(void) //主程式
{
const int n = 6; //陣列元素的數量
int array[n];
cout << "請輸入6個整數:" << endl;
for (int i = 0; i < n; i++)
{
cin >> array [i];
}
cout << endl; //換行
BubbleSort(array, n); // 呼叫BubbleSort函式 進行比較
cout << "由小到大的順序排列後:" << endl;
for (int i = 0; i < n; i++)
{
cout << array[i] << ",";
}
cout << endl << endl; //換行
system("pause"); //除錯時,黑視窗不會閃退,一直保持
return 0;
}
執行結果: