c语言 快速排序
2023-09-14 09:13:51 时间
1.代码
#include "stdio.h"
//快速排序
void quickSort(int arr[],int left, int right){
int ch[3] = {0};
int tempLeft = left;
int tempRight = right;
//选取最左边的为基准元素
int temp = arr[left];
int compareRight = 1;
while (left != right) {
if (compareRight == 1) {
//temp和右边的数比
if(temp > arr[right]){
arr[left] = arr[right];
left++;
compareRight = 0;
}else{
right--;
}
}else{
//temp和左边的数比
if (temp < arr[left]) {
arr[right] = arr[left];
right--;
compareRight = 1;
}else{
left++;
}
}
}
arr[left] = temp;
//排序基准元素左边的
if (tempLeft < (left-1)) {
quickSort(arr, tempLeft, left-1);
}
//排序基准元素右边的
if (tempRight > left+1) {
quickSort(arr, left+1, tempRight);
}
}
int main()
{
int numArr[] = {3,5,4,6,2,45,22};
int len = sizeof(numArr)/sizeof(int);
quickSort(numArr,0,len-1);
for (int i = 0; i < len; i++) {
printf("%d\n",numArr[i]);
}
}
打印结果:
2
3
4
5
6
22
45
Program ended with exit code: 0
2.参考博客
相关文章
- R语言爬虫初尝试-基于RVEST包学习
- Linux - 终端语言设置
- HTML语言编写指南
- Atitit 数据控制语言与权限 DCL
- Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)
- Python语言学习:字典排序相关案例实现(一行代码对字典按照key或value升序排序并输出、利用sorted对字典按照value进行递增排序,并给定排名索引,组成新字典输出)
- GO语言为结构体排序
- 1636. 按照频率将数组升序排序-c语言自定义二重排序
- c语言根据数组创建二叉排序树
- 2333. 最小差值平方和-排序加二分查找,力扣c语言题解
- 销售价值减少的颜色球-c语言快速排序加插入排序
- 在排序数组中查找元素的第一个和最后一个位置-c语言时间复杂度o(n)
- c语言创建连续数字数组练习
- JavaSE学习总结(二)——Java语言基础
- Go语言自学系列 | golang标准库os模块 - File文件读操作
- 任何一门语言思考的
- go语言笔记——map map 默认是无序的,不管是按照 key 还是按照 value 默认都不排序
- go语言笔记——切片函数常见操作,增删改查和搜索、排序
- 【蓝桥真题5】带三百人训练了十天精选蓝桥真题,看看他们都练些什么(三门语言题解)
- 用通俗易懂的语言解释IOC
- C语言嵌套定义