#include <iostream> using namespace std; /** 一句箴言:n個元素從左至右依次兩兩對比,若左邊大於右邊,則交換位置,通過一輪交換,最右邊的那個則是最大元素。接下來將剩下的n-1 重複上一個過程 方法:從已排序元素倒着對比,若待排序元素小於當前比較元素,則互換位置。 若待排序元素大於當前比較元素,則說明已經該元素就該在此位置 **/ void maoPaoSort(int arr[], int n) { //每次循環只能找到最大的一個,有n個待排序,則須要n次比較 for (int i = 0; i<n; i++) { //j < n -i 的緣由爲,外層每循環一次,已將待排序中最大的移動到了最右邊,只須要對剩下的元素冒泡便可 for (int j =0; j< n -i; j++) { if (arr[j] > arr[j+1]) { swap(arr[j], arr[j+1]); } } } } int main() { int arr[10] = {9,10,8,7,6,5,4,3,2,1}; maoPaoSort(arr, 10); for(int i =0; i< 10; i++) { cout << arr[i] << " "; } return 0; }