代码拉取完成,页面将自动刷新
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
void printArr(int a[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
}
int Partition(int A[], int low, int high) {
//快速排序
int pivot = A[low]; //选取第一个作为枢轴
while (low < high) {
while (low < high && A[high] >= pivot)
high--;
A[low] = A[high];
while (low < high && A[low] <= pivot)
low++;
A[high] = A[low];
}
A[low] = pivot;
return low;
}
void QuickDivideSort(int A[], int low, int high, int n) {
if (low < high) {
int pivot = Partition(A, low, high);
if (pivot < n / 2)//划分出n/2的位置
QuickDivideSort(A, pivot + 1, high, n);
else
QuickDivideSort(A, low, pivot - 1, n);
}
}
int main() {
int sort[] = { 2, 3, 3, 5, 6, 7, 1, 1, 1, 1, 1 };
int n = sizeof(sort) / 4;
QuickDivideSort(sort, 0, n - 1, n);
printArr(sort, 11);
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。