```
//
// main.cpp
// 21quickSort0901
//
// Created by terry on 2021/9/10.
//
//#include
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
File name:Quicksort
Author:TerryDeng Version:1.0 Date: 2016/11/04
Description: 對數組進行快速排序
Funcion List: 實現快速排序算法
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
#include
#include
#define BUF\_SIZE 10
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
\*函數名:display
\*作用:打印數組元素
\*參數:array - 打印的數組,maxlen - 數組元素個數
\*返回值:無
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
**void** display(**int** array\[\], **int** maxlen)
{
**int** i;
**for**(i = 0; i < maxlen; i++)
{
printf("%-3d", array\[i\]);
}
printf("\\n");
**return** ;
}
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
\*函數名:QuickSort
\*作用:快速排序算法
\*參數:
\*返回值:無
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
**void** QuickSort(**int** \*arr, **int** low, **int** high)
{
**if** (low < high)
{
**int** i = low;
**int** j = high;
**int** k = arr\[low\];
**while** (i < j)
{
**while**(i = k) // 從右向左找第一個小于k的數
{
j--;
}
**if**(i < j)
{
arr\[i++\] = arr\[j\];
}
**while**(i < j && arr\[i\] < k) // 從左向右找第一個大于等于k的數
{
i++;
}
**if**(i < j)
{
arr\[j--\] = arr\[i\];
}
}
arr\[i\] = k;
// 遞歸調用
QuickSort(arr, low, i - 1); // 排序k左邊
QuickSort(arr, i + 1, high); // 排序k右邊
}
}
// 主函數
**int** main()
{
**int** array\[BUF\_SIZE\] = {12,85,25,16,34,23,49,95,17,61};
**int** maxlen = BUF\_SIZE;
printf("排序前的數組\\n");
display(array, maxlen);
QuickSort(array, 0, maxlen-1); // 快速排序
printf("排序后的數組\\n");
display(array, maxlen);
**return** 0;
}//
```