100 20 10 7 8 9 1 5 6 3 2 4
1 3 2 4 8 9 100 5 6 20 10 7
1 3 2
1 2 3
8 9 100 5 6 20 10 7
5 6 7 8 9 20 10 100
5 6
5 6
8 9 20 10 100
8 9 20 10 100
8 9 20 10
8 9 10 20
8 9
8 9
Sorted array:
1 2 3 4 5 6 7 8 9 10 20 100
PS F:\BC\2024\9\28> ./Main7100 20 10 7 8 9 1 5
1 5 10 7 8 9 100 20
10 7 8 9 100 20
10 7 8 9 20 100
10 7 8 9
7 8 9 10
7 8
7 8
Sorted array:
1 5 7 8 9 10 20 100
cpp#include<iostream> using namespace std; void printArray(int arr[], int low, int high) { for (int i = low; i <= high; i++) { cout << arr[i] << " "; } cout << endl; } int partition(int arr[], int low, int high) { printArray(arr,low,high); int pivot = arr[high];// 选择最后一个元素作为基准 int i = (low - 1);//小于基准的元素索引 for (int j = low; j <= high - 1; j++) { if (arr[j] < pivot) { i++; swap(arr[i], arr[j]);//交换元素 } } swap(arr[i + 1], arr[high]); // 将基准放到正确的位置 printArray(arr,low,high); cout<<endl; return (i + 1);//返回基准的最终位置 } void quickSort(int arr[], int low, int high) { if (low < high) { int pi = partition(arr, low, high);// 获取分区点 quickSort(arr, low, pi - 1);// 递归排序左子数组 quickSort(arr, pi + 1, high);// 递归排序右子数组 } } int main() { int arr[] = { 100,20,10, 7, 8, 9, 1, 5 }; int n = sizeof(arr) / sizeof(arr[0]); //printArray(arr, 0, n - 1); quickSort(arr, 0, n - 1); cout << "Sorted array: \n"; for (int i = 0; i < n; i++) { cout << arr[i] << " "; } return 0; }
快排 C++
laocooon5238578862024-10-08 14:12
相关推荐
董董灿是个攻城狮6 小时前
AI视觉连载8:传统 CV 之边缘检测AI软著研究员13 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”FunnySaltyFish13 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?颜酱14 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析地平线开发者1 天前
SparseDrive 模型导出与性能优化实战董董灿是个攻城狮1 天前
大模型连载2:初步认识 tokenizer 的过程地平线开发者1 天前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结罗西的思考1 天前
AI Agent框架探秘:拆解 OpenHands(10)--- RuntimeHXhlx1 天前
CART决策树基本原理Wect1 天前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲