一、实验目的
熟悉各种内部排序算法的思想。
理解快速排序算法。
二、实验内容
排序算法的实现。
三、实验设备
Vs2019
四、实验要求
本实验要求实现以下功能:对从键盘输入的顺序任意的8个正整数,通过各种排序(至少2个排序方法)使之成为有序的序列。输出每一趟排序的结果。
#include<stdio.h>
#define N 8
//快速排序
void quickSort(int arr[], int low, int high)
{
int first = low;
int last = high;
int key = arr[first];
if(low >= high)
return;
while(first < last)
{
while(first < last && arr[last] > key)
{
last--;
}
arr[first] = arr[last];
while(first < last && arr[first] < key)
{
first++;
}
arr[last] = arr[first];
}
arr[first] = key;
quickSort(arr, low, first-1);
quickSort(arr, first+1, high);
}
int main()
{
int a[N];
int temp, i, j;
printf("请输入8个任意整数:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
//冒泡排序
for (i = 0; i < N-1; i++)
for (j = 0; j < N - i - 1; j++)
if (a[j] > a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
printf("冒泡排序后结果为:\n");
for (i = 0; i < N; i++)
printf("%d ", a[i]);
printf("\n");
printf("快速排序结果为:\n");
quickSort(a, 0, 7);
for(i = 0; i < N; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}