c语言-快速排序

devtools/2024/10/25 18:30:43/

文章目录

      • 代码工程
      • 运行结果

这个是升序排列,如果想降序排列,将下面两行的符号反过来即可;
arr[right] <= arr[key]
arr[left] >= arr[key]

代码工程

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>void swap(int *v1, int *v2)
{int temp = *v1;*v1 = *v2;*v2 = temp;
}void my_qsort(int *arr, int start, int end)
{int key = start;int left = start;int right = end;if (left > right){return;}while (left < right){/*从右往左遍历,找到小于arr[key]的值*/while ((left < right) && (arr[right] >= arr[key])){right--;}/*从左往右遍历,找到大于arr[key]的值*/while ((left < right) && (arr[left] <= arr[key])){left++;}/*交换值*/swap(&arr[left], &arr[right]);}swap(&arr[key], &arr[right]);key = right;my_qsort(arr, start, key - 1);my_qsort(arr, key + 1, end);return;
}int main()
{int i = 0;int arr[] = { 10, 6, 9, 1, 8, 7, 5, 4, 2, 3 };int num = sizeof(arr) / sizeof(int);my_qsort(arr, 0, num - 1);printf("排序后:");for (i = 0; i < num; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}

运行结果

在这里插入图片描述


http://www.ppmy.cn/devtools/3950.html

相关文章

C++如何把图片转成base64数据

在C++中将图片转换为Base64格式涉及几个步骤,主要是读取图片文件的二进制数据,然后将这些数据编码为Base64字符串。这个过程通常需要用到额外的库来辅助完成,例如使用开源库如OpenSSL来进行Base64编码,以及使用标准库来处理文件输入输出。 下面提供一个基本的示例,展示如…

Linux:常用软件、工具和周边知识介绍

上次也是结束了权限相关的知识&#xff1a;Linux&#xff1a;权限相关知识详解 文章目录 1.yum-管理软件包的工具1.1基本介绍1.2yum的使用1.3yum的周边生态1.4软件包介绍 2.vim-多模式的文本编辑器2.1基本介绍2.2基本模式介绍2.2.1命令模式&#xff08;Normal mode&#xff09;…

3.SpringCloud版本

1.SpringCloud与SpringBoot之间版本对应 2.服务拆分的注意事项 1.不同微服务&#xff0c;不要重复开发相同业务。 2.微服务的数据独立&#xff0c;每个微服务都有自己独立的数据库&#xff0c;不要访问其他微服务的数据库。 3.微服务可以将自己的的业务暴露为接口&#xff…

密码学 | 数字签名方法:Schnorr 签名

⚠️原文&#xff1a;Introduction to Schnorr Signatures ⚠️写在前面&#xff1a;适用于有一点密码学基础的亲故&#xff0c;否则建议跑路。 1 Schnorr 签名的定义 假设你有密钥对 ( x , X x ∗ G ) ( x, X x * G ) (x,Xx∗G)&#xff0c;那么消息 m m m 的 Schnor…

若依前后端部署到一起

引用&#xff1a;https://blog.csdn.net/qq_42341853/article/details/129127553 前端改造&#xff1a; 配置打包前缀 修改router.js 编程hash模式&#xff1a; 前端打包&#xff1a;npm run build:prod 后端修改&#xff1a; 添加thymeleaf包&#xff0c;和配置文件 spri…

(78)删除有序数组中的重复项(79)排序矩阵查找

文章目录 1. 每日一言2. 题目(78)删除有序数组中的重复项2.1 解题思路2.2 代码 3. 题目(79)排序矩阵查找3.1 解题思路3.1.1 暴力查找暴力查找代码 3.1.2 二分查找二分查找代码 3.1.3 贪心贪心代码 4. 结语 1. 每日一言 水晶帘动微风起&#xff0c;满架蔷薇一院香。 —高骈- 2.…

OpenHarmony实战开发-Web自定义长按菜单案例。

介绍 本示例介绍了给Webview页面中可点击元素&#xff08;超链接/图片&#xff09;绑定长按/鼠标右击时的自定义菜单的方案。 效果预览图 使用说明 长按Web页面中的图片或者链接元素&#xff0c;弹出自定义的Menu菜单&#xff0c;创建自定义的操作&#xff0c;如复制图片、使…

一文读懂自动化运维工具ansible及其使用

1. ansible简介 ansible是干什么的 ansible是目前最受运维欢迎的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;SaltStack puppet、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令…