c语言排快速排序过程,C语言中快速排序法怎么排
快速排序法的排法:首先每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边;然后将大于等于基准点的数全部放到基准点的右边;最后在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。
快速排序法的排法:
算法思想:
(1) 我们从待排序的记录序列中选取一个记录(通常第一个)作为基准元素(称为key)key=arr[left],然后设置两个变量,left指向数列的最左部,right指向数据的最右部。
(2) key首先与arr[right]进行比较,如果arr[right]key则我们只需要将right--,right--之后,再拿arr[right]与key进行比较,直到arr[right]
(3) 如果右边存在arr[right]key,则将arr[right]=arr[left],如果arr[left]
(4) 然后再移动right重复上述步骤
(5) 最后得到 {23 58 13 10 57 62} 65 {106 78 95 85},再对左子数列与右子数列进行同样的操作。最终得到一个有序的数列。
算法实现:public class QuickSort {
public static void quickSort(int [] arr,int left,int right) {
int pivot=0;
if(left
pivot=partition(arr,left,right);
quickSort(arr,left,pivot-1);
quickSort(arr,pivot+1,right);
}
}
private static int partition(int[] arr,int left,int right) {
int key=arr[left];
while(left
while(left=key) {
right--;
}
arr[left]=arr[right];
while(left
left++;
}
arr[right]=arr[left];
}
arr[left]=key;
return left;
}
public static void main(String[] args) {
int arr[]= {65,58,95,10,57,62,13,106,78,23,85};
System.out.println("排序前:"+Arrays.toString(arr));
quickSort(arr,0,arr.length-1);
System.out.println("排序后:"+Arrays.toString(arr));
}
}排序前:[65, 58, 95, 10, 57, 62, 13, 106, 78, 23, 85]
排序后:[10, 13, 23, 57, 58, 62, 65, 78, 85, 95, 106]相关学习推荐:C视频教程
c语言排快速排序过程,C语言中快速排序法怎么排相关推荐
- c是过程化语言吗数据库,A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统...
A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统 更多相关问题 [填空题] 为了安全起见,起动发动机前要检查()有无行人.---叉车操作和保养手册第2-77.在起动叉车前()以警告周围的人. ...
- c语言程序链接过程,C语言简明教程(二):C程序编译链接过程和实例对照详解...
不像高级编程语言,在C语言开发中,了解其编译链接过程显得相对重要,因为C语言是较为底层的语言,很多时候我们调试C程序或者解决其它问题都可能会涉及到C编译链接的相关知识,例如编译动态库或者静态库.下面我 ...
- c语言 元组顺序随机化,为什么关系中的元组没有先后顺序且不允许有重复元组?...
满意答案 lxy70452 2013.03.31 采纳率:46% 等级:11 已帮助:8117人 1. 解释下述名词 关系模型,关系模式,关系实例,属性,域, 元组,超键,候选键,主键, 实体完 ...
- c程序设计语言如何补零,C语言程序设计(补)-中国大学mooc-题库零氪
第1章 概述 第1讲 C语言概述随堂测验 1.C语言是面向过程的语言. 第2讲 C语言基本语法成分随堂测验 1.C语言也被称作函数语言. 第3讲 C语言环境介绍随堂测验 1.C常用的环境包括: A.V ...
- c 语言程序设计阚道宏,C语言用宏实现静态多态
综述 多态性是面向对象程序设计的一个重要特征. 在C++语言中,多态指的是:具有不同功能的函数可以用同一个函数名,可以用一个函数名调用不同内容的函数. C++的多态分为两种: 1. 静态多态性(编译时 ...
- 是计算机程序设计语言的是,计算机设计语言
计算机设计语言是编写计算机程序所用的语言,可分为机器语言.汇编语言和高级语言.[1] 中文名 计算机设计语言 外文名 Computer language design 定 义 编写计算机程序的语 ...
- c语言程序设计铁道版,C语言程序设计(方少卿) 铁道C第1章(修订版).pdf
第一章第一章 CC语言概述语言概述 • 1.1 C语言的演变及特点 • 1.2 C源程序的结构特点 • 1.3 数据输入和输出的常用方法 • 1.4 C语言的字符集与C语言词汇 • 1.5 Turbo ...
- Linux系统中使用vim编写C语言代码实现过程
博主这里是阿里云CentOs7的系统,以下涉及到的yum软件安装命令,在其他Linux发行版上可能会有些许不同,望读者安装时注意,如出现命令无法识别请根据对应发行版自行百度. 使用Linux进行C语言 ...
- C语言学习笔记Day3——持续更新中... ...
上一篇文章C语言学习笔记Day2--持续更新中- - 八. 容器 1. 一维数组 1.1 什么是一维数组 当数组中每个元素都只带有一个下标(第一个元素的下标为0, 第二个元素的下标为1, 以此类推)时 ...
最新文章
- 英伟达官宣:CUDA 将不再支持 macOS
- python label位置_Python3 tkinter基础 Label pack 设置控件在窗体中的位置
- 第14讲:Selenium 的基本使用
- 文本挖掘(part7)--Word2vec
- Windows导出所有计划任务方法
- Could not create the view: An unexpected exception was thrown.
- (09)Vivado IO约束
- Python中Numpy数组的归一化处理
- 改变win7登陆时的界面
- c语言代码出来在哪里运行,C语言代码,怎么运行。
- win7如何修改html图标,Win7如何更改软件图标?Win7更改软件图标的方法
- 计算机考研英语一历年国家线,历年考研英语国家线
- 虚拟主机和服务器有啥区别,虚拟主机和服务器的区别在哪?
- 电脑计算机界面打开后无法缩小,技术编辑演示win10系统iE网页界面大小无法缩放的办法...
- “玲珑杯”ACM比赛 Round #4
- 阿翔编程学-Axis日志服务类
- 元宵爬虫-YuanXiaoSpider
- VR场景会对普通场景的摄像机有影响
- The Closest M Points
- 微信公众号开发 公众号接口开发 封装统一的GET/POST请求接口
热门文章
- 打包签名用 文件配置遇到的坑(Keystore was tampered with, or password was incorrect)
- 记一次 打包报错:Keystore was tampered with, or password was incorrect
- 爬虫必备,案例对比 Requests、Selenium、Scrapy 爬虫库!
- JS基础-事件模型(事件事件流自定义事件事件冒泡/代理)
- 浏览器端反爬虫特征收集之字体检测
- Java之驼峰命名法
- apache代理503
- among us私服搭建
- 【代码重构】临时字段(Temporary Field)-- 如何消除和处理代码中临时字段
- 最常被遗忘的 Web 性能优化:浏览器缓存