/**
* 王道书 P335 T02 双向冒泡排序
*
* ①算法思想
* 前后的有序区逐渐夸大,中间的无序范围逐渐缩小
* 定义一个low和high,low标记前面有序区的最后,high标记后面有序区的最前。
*
* ②算法设计
*
*/
#include <stdio.h>
#include <iostream>
#include <cstdio>
#include <malloc.h>
#include <cstdlib>
#define MaxSize 20
#define INF 999999
//王道书 P335 T02 双向冒泡排序
void DoubleBubble(int arr[],int n){
int low = 0,high = n - 1,flag = 1,temp;
while(low < high && flag == 1){
flag = 0;
for (int i = low; i < high; ++i) {
if(arr[i] > arr[i+1]){
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
flag = 1;
}
}
high--;
for (int i = high; i > low ; --i) {
if(arr[i] < arr[i-1]){
temp = arr[i];
arr[i] = arr[i-1];
arr[i-1] = temp;
flag = 1;
}
}
low++;
}
}