数据结构考核
//学号后两位 41,对 7 取余得 6。
第六题:采用快速排序,对序列{ 81, 68, 21, 48, 54, 9, 75, 29, 97, 108, 101, 21,
52 }进行快速排序,并输出各趟结果。
源代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
const int size = 13;//数组长度
int partition(int arr[], int low, int high)//书上代码改编
{
static int n;//定义一个静态变量,第n次的排序结果
int i = low, j = high;
int first = arr[i];//第一个元素为划分基准
while (i < j)//扫描
{
while (j > i && arr[j] >= first)
j--;//从右往左遍历
if (i < j)
{
arr[i] = arr[j];
i++;
}
while (j > i && arr[i] <= first)
i++;//从左往右遍历
if (i < j)
{
arr[j] = arr[i];
j--;
}
}
arr[i] = first;
//输出第n次排序的结果
n++;
printf("第%d排序结果: ",n);
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);