實驗8.2 快速排序
阿新 • • 發佈:2021-01-17
文章目錄
標頭檔案
#include<iostream>
#include<stdio.h>
#define MAX 8
快速排序
int QuickSort(int a[], int l, int r)
{
int pivot; //樞軸
int i = l;
int j = r;
int temp;
pivot = a[(l + j) / 2]; //取陣列中間的數作為樞軸
do
{
while (a[i] < pivot)
i++; //i右移
while (a[j] > pivot)
j--; //j右移
if (i <= j)
{
temp = a[i];;
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
} while (i <= j);
if (l < j)
QuickSort(a, l, j);
if (i < r)
QuickSort(a, i, r);
return i;
}
主函式
int main()
{
int array[MAX];
int i;
printf("\n請輸入%d個整數" , MAX);
for (i = 0;i < MAX;i++)
scanf("%d",&array[i]);
QuickSort(array, 0, MAX - 1);
printf("\n快速排序之後的陣列為:");
for (i = 0;i < MAX;i++)
printf("%d\t", array[i]);
printf("\n");
}