奇偶排序(磚塊排序)的 C/C++ 程式?
現在我們來了解下磚塊排序如何工作。磚塊排序是氣泡排序的一種修改。此演算法分為兩部分。這兩部分是奇數部分和偶數部分。在奇數部分,我們對奇數索引項使用氣泡排序,而在偶數部分,我們對偶數索引元素使用氣泡排序。讓我們瞭解該演算法以獲得思路。
演算法
brickSort(arr, n)
begin flag := false while the flag is not true, do flag := true for i := 1 to n-2, increase i by 2, do if arr[i] > arr[i+1], then exchange arr[i] and arr[i+1] flag := false end if done for i := 0 to n-2, increase i by 2, do if arr[i] > arr[i+1], then exchange arr[i] and arr[i+1] flag := false end if done done end
示例
#include<iostream>
using namespace std;
void brickSort(int arr[], int n){
bool flag = false;
while(!flag){
flag = true;
for(int i = 1; i<n-1; i= i+2){
if(arr[i] > arr[i+1]){
swap(arr[i], arr[i+1]);
flag = false;
}
}
for(int i = 0; i<n-1; i= i+2){
if(arr[i] > arr[i+1]){
swap(arr[i], arr[i+1]);
flag = false;
}
}
}
}
main() {
int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
int n = sizeof(data)/sizeof(data[0]);
cout << "Sorted Sequence ";
brickSort(data, n);
for(int i = 0; i <n;i++){
cout << data[i] << " ";
}
}輸出
Sorted Sequence 13 20 32 35 40 54 74 98 98 154
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP