c语言-快速排序

news/2024/9/22 17:07:32/

文章目录

      • 代码工程
      • 运行结果

这个是升序排列,如果想降序排列,将下面两行的符号反过来即可;
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/news/1425317.html

相关文章

Qt MSVC编译器中文字符串编译报错及乱码问题

文章目录 一、使用MSVC编译器编译时字符串含有中文,编译报错解决方案一:修改.pro文件,在.pro文件中添加以下设置,然后qmake重新编译即可通过解决方案二:将源代码文件的编码转换成UTF-8-BOM1.先来查看一下Qt Creator源代码文件原来的编码及编译结果2.使用Notepad++或其他编…

【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡(偏爱Saga)->解决方案

【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡->解决方案->底层实现->应用案例 不断有同学问我大厂中实践分布式事务的问题,这里从分布式事务的产生,到强弱一致性与性能的权衡,再到最终落地的解决方案,再到实际的代码实现,再到我工作中实际使用SA…

react 使用WEB3.0控件开发包 V3.0接入海康威视摄像头

1、下载官方安装包&#xff1a; 2、安装官方插件 3、引入文件 在public/index 中引入监控依赖&#xff0c;这三个文件可以在下载的官方demo中找到 4、react 中使用 useEffect(() > { const ipInfo :[192.168.xxxx];//初始化摄像头const WebVideoCtrl window.WebVideoCtrl…

draw.io使用心得

draw.io使用心得 在当今信息爆炸的时代&#xff0c;视觉表达的重要性日益凸显。无论是在学习、工作&#xff0c;还是在日常生活中&#xff0c;我们经常需要通过图表来清晰地展示复杂的想法、流程或者关系。draw.io作为一款强大且易于使用的在线绘图工具&#xff0c;为我提供了…

端点安全时刻影响着网络安全,我们应该如何保护

端点&#xff08;Endpoint&#xff09;是网络通信中的一个重要概念&#xff0c;指的是网络通信中的发送或接收信息的设备或节点。在一个网络中&#xff0c;端点可以是硬件设备&#xff08;如计算机、服务器、手机、路由器等&#xff09;&#xff0c;也可以是软件应用或服务。端…

Linux 系统中用户、用户组和文件权限管理的常用命令 useradd、usermod、groupadd、groupmod、chmod

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 1. useradd useradd 是 Linux 系统中用于创建新用户账户的命令。管理员通常用它来添加新的系统用户&#xff0c;为他们设置初始配置&#xff0c;如主目录、登录 Shell 等。这个命令具有多个选项&#x…

C语言-单片机:STM32程序烧录的几种方法

STM32微控制器提供了多种程序烧录&#xff08;也称为编程或固件更新&#xff09;方式&#xff0c;这些方法允许用户将编译后的程序代码&#xff08;通常为HEX或BIN格式&#xff09;下载到MCU的闪存中。以下是几种常见的STM32程序烧录方式&#xff1a; ST-LINK&#xff1a; ST-L…

(保姆级教学)跨站请求伪造漏洞

1. CSRF漏洞 CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造&#xff0c;也被称为One Click Attack 或者Session Riding&#xff0c;通常缩写为CSRF或者XSRF&#xff0c;是一种对网站的恶意利用。尽管听起来像跨站脚本&#xff08;XSS&#xff09;&…