C语言 数组排序 – 快速法排序 - C语言零基础入门教程

目录

  • 一.简介
  • 二.数组快速法排序原理
  • 三.数组快速法排序实战
  • 四.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.简介

经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序,例如:学习成绩排序,身高排序,年龄排序等等;在 C 语言中常见的数组排序一共有四种:

  • 1.冒泡法排序
  • 2.选择法排序
  • 3.插入法排序
  • 4.快速法排序

二.数组快速法排序原理

快速排序法号称是目前最优秀的算法之一,实现思路是,将一个数组的排序问题看成是两个小数组的排序问题,而每个小的数组又可以继续看成更小的两个数组,一直递归下去,直到数组长度大小最大为 2。

三.数组快速法排序实战

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 数组排序 – 快速法排序
//@Time:2021/06/08 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include<stdlib.h>
#include<stdio.h>
//快速排序
void quickSort(int *arr, int l, int r)
{//此处编写代码实现快速排序int i, j, x, temp;if (l < r){i = l;j = r;x = arr[(l + r) / 2];//以中间元素为轴while (1){while (i <= r && arr[i] < x)i++;while (j >= 0 && arr[j] > x)j--;if (i >= j) //相遇则跳出break;else{temp = arr[i];arr[i] = arr[j];arr[j] = temp;//交换}}quickSort(arr, l, i - 1); //对左半部分进行快排quickSort(arr, j + 1, r); //对右半部分进行快排}
}
void main()
{int a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 10 };int len = sizeof(a) / sizeof(int);for (int i = 0; i < len; i++){printf("排序之前:index:%d  value:%d\n", i, a[i]);}//快速法排序quickSort(a, 0, 9);printf("-----------------------------------\n");for (int i = 0;i<len;i++){printf("排序之后:index:%d  value:%d\n", i, a[i]);}system("pause");
}/*
输出:排序之前:index:0  value:9
排序之前:index:1  value:8
排序之前:index:2  value:7
排序之前:index:3  value:6
排序之前:index:4  value:5
排序之前:index:5  value:4
排序之前:index:6  value:3
排序之前:index:7  value:2
排序之前:index:8  value:1
排序之前:index:9  value:10
-----------------------------------
排序之后:index:0  value:1
排序之后:index:1  value:2
排序之后:index:2  value:3
排序之后:index:3  value:4
排序之后:index:4  value:5
排序之后:index:5  value:6
排序之后:index:6  value:7
排序之后:index:7  value:8
排序之后:index:8  value:9
排序之后:index:9  value:10
请按任意键继续. . .
*/

四.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. C 语言格式控制符/占位符
  6. C 语言逻辑运算符
  7. C 语言三目运算符
  8. C 语言逗号表达式
  9. C 语言 for 循环
  10. C 语言 while 循环
  11. C 语言 do while 和 while 循环
  12. C 语言 switch 语句
  13. C 语言 goto 语句
  14. C 语言 char 字符串
  15. C 语言 sizeof 和 strlen 函数区别
  16. C 语言 strcpy 和 strcpy_s 函数区别
  17. C 语言 memcpy 和 memcpy_s 区别
  18. C 语言 数组定义和使用
  19. C 语言 数组遍历
  20. C 语言 数组排序 – 冒泡法排序
  21. C 语言 数组排序 – 选择法排序
  22. C 语言 数组排序 – 插入法排序
  23. C 语言 数组排序 – 快速法排序

未经允许不得转载:猿说编程 » C 语言 数组排序 – 快速法排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BugkuCTF-MISC题善用工具

补充 解出此题需要下载一个工具Free_File_Camouflage Free_File_Camouflage图片隐写工具:能将重要的文件以AES加密算法存放在JPG格式的图片里。你还可以设置口令&#xff0c;就算别人知道你以File Camouflag加密&#xff0c;但不知道密码也无法偷窥的文件。 解题流程 描  …

北美KubeCon新风,正把K8S魔力带向边缘计算

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;DJ审校&#xff1a;KevinWang来源&#xff1a;容器魔方1. 容器生态圈新的创新方向2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕。这次北美KubeCon总共吸引了8000多观众参会&#xff0c;创下历史新…

PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译

​ 在这里分享一些技巧和经验给大家。辛苦撰文分享&#xff0c;转载或引用请保留本文作者信息及文章链接。 作者的环境&#xff1a; win7python3.5(anaconda3) 理论上&#xff0c;win7及以上的系统和python任意版本均可。 一、基础脚本 首先我们构建一个简单的脚本&#xff0…

封装之详细详解

1.属性私有&#xff0c;get/set 2.封装&#xff1a;数据的隐藏 3.该漏漏&#xff0c;该藏藏&#xff1a;程序要求高内聚、低耦合&#xff0c;高内聚指类的内部数据操作细节自己完成&#xff0c;低耦合是提供少量方法供外部使用 package com.wuming.oop.demo04; //类 private…

BugkuCTF-MISC题神秘的文件

下载文件file.rar 解压后有个flag.zip与一个logo.png图片&#xff0c;点击flag.zip&#xff0c;发现为明文攻击 由于明文需要与加密文件相同类型的格式&#xff0c;所以将logo.png压缩为.zip格式 发现不可明文&#xff0c;后来发现通过winrar工具压缩为.zip格式可成功明文 得…

云计算的概念 - 初识云计算知识专栏(1)

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;云说君来源&#xff1a;Cloud云说云计算的概念云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c; 进入可配置的计算资源共享池&#xff08;资源包括网络&#xf…

C语言 数组下标越界 - C语言零基础入门教程

目录 一.数组下标越界简介 1、什么是数组访问越界&#xff1f;2、访问越界会出现什么结果&#xff1f; 二.数组下标越界案例三.防止数组下标越界方法四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.数组下标越界简介 1、什么是数组访问越界…

idea快捷键之记录

1.ctrlaltv补齐下面左边的. new A&#xff08;&#xff09;; 2.altinsert是getter、setter、构造方法等快捷键 3.ctrlh在实体类按&#xff0c;显示继承关系

BugkuCTF-MISC题神奇宝贝

压缩包有两个文件&#xff0c;但是在解压的时候报错 用010editor打开&#xff0c;发现报错 同时发现文件尾部是504B,说明这是一个zip文件&#xff0c;把文件头修改为504B0304后可以解压出压缩包和一个图片 后来才知道&#xff0c;这是 《精灵宝可梦》 里的精灵未知图腾,拥有2…

云漫圈 | 寻找无序数组的第k大元素

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;小灰来源&#xff1a;程序员小灰本期封面作者&#xff1a;泰勒太乐————— 第二天 —————题目是什么意思呢&#xff1f;比如给定的无序数组如下&#xff1a;如果 k6&#xff0c;也就是要寻找第6大的元素&a…

继承之详细讲解

代码结构 package com.wuming.oop2.demo05; //person 人 父类 public class Person {//继承:java只有单继承&#xff0c;没有多继承&#xff0c;extends修饰public int money10_0000_0000;private int money120;public int getMoney1() {return money1;}public void setM…

C语言 数组内存溢出 - C语言零基础入门教程

目录 一.数组内存溢出简介二.数组内存溢出实例三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.数组内存溢出简介 溢出&#xff1a;想象一个桶&#xff0c;桶的容积是有限的&#xff0c;你装满了水以后&#xff0c;如何还要往里面装&#xf…

BugkuCTF-MISC题乌云邀请码

下载文件&#xff0c;解压后得到一张图片 方法一&#xff1a; 通过zsteg直接得到flag 方法二&#xff1a; 放入Stegsolve查看 发现红绿蓝plane0 的最上边都有一排小黑点儿&#xff0c;很可疑 选择Analyse 的Data Extract进行分析 勾选红绿蓝的0层&#xff0c;选BGR模式&…

趣挨踢 | 关于遗留代码的那些事儿

戳蓝字“CSDN云计算”关注我们哦&#xff01;来自&#xff1a;程序员最幽默&#xff08;ID&#xff1a;humor1024&#xff09;【1】当我不小心打开了遗留代码&#xff0c;世界从我眼前消失了。【2】当我试图破译遗留代码的时候【3】当我尝试修复遗留代码&#xff0c;却永远找不…

全网最细之super讲解

1.super调用父类构造方法且必须出现在方法内第一行 2.super必须只能出现在子类的方法或者构造方法中 3.super和this不能同时存在 vs this: 代表的对象不同&#xff1a; this&#xff1a;本身 super&#xff1a;父类 前提&#xff1a; this:没有继续也可以使用 super&a…

C语言 数组下标越界和内存溢出区别 - C语言零基础入门教程

目录 一.数组下标越界和内存溢出简介二.数组下标越界和内存溢出区别三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.数组下标越界和内存溢出简介 **溢出本义是算术溢出(arithmetic overflow)&#xff0c;**指算术计算结果无法在一定范围内表…

重写详细讲解

重写&#xff1a;需要有继承关系&#xff0c;子类重写父类的方法&#xff01; 1.方法名必须相同 2.参数列表必须相同 3.修饰符&#xff1a;范围可以扩大但不能缩小&#xff1a;public>protected>default>private 4.抛出异常&#xff1a;范围可以被缩小&#xff0c…

云计算演进历程与模式 - 初识云计算知识专栏(2)

戳蓝字“CSDN云计算”关注我们哦&#xff01;云计算演进历程云计算产生背景云计算的产生是需求推动、技术进步、商业模式转变共同促进的结果。需求推动指的是政企客户低成本且高性能的信息化需求&#xff1b;人用户的互联网、移动互联网应用需求强烈&#xff0c;追求更好用户体…

BugkuCTF-MISC题细心的大象

下载文件file.zip 直接解压出错&#xff0c;通过binwalk -e file.zip分离出文件夹_file.zip.extracted 得到一张图片&#xff0c;通过binwalk -e 1.jpg分离出文件夹_1.jpg.extracted 得到.rar压缩包&#xff0c;打开需要密码&#xff0c;通过爆破找不到密码 查看1.jpg图片属性&…

C语言 数组长度计算 - C语言零基础入门教程

目录 一.计算数组长度 1.经典案例2.计算数组长度 二.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.计算数组长度 1.经典案例 /******************************************************************************************/ //Author:猿说…