1209.1——快速排序算法
#include <stdio.h>
void quickSort(int array[], int low, int high){
int i = low; //从左到右
int j = high; //从右边到左
//保存参考值 第一个数作为参考值
int temp = array[low];
if (low < high) {
while (i < j) {
//先从最右边开始找到第一个比temp小的数
while (i < j && array[j] >= temp) {
j--;
}
//找到第一个比temp小得数了。
//交换
array[i] = array[j];
//从左边开始,找到第一个比temp大得数
while (i < j && array[i] <= temp) {
i++;
}
//找到第一个比 temp大得数了。
//交换
array[j] = array[i];
}
//找到临界点的位置
array[i] = temp;
//以i为基准,左边的比temp小, 右边的比temp大
//对左边进行排序
quickSort(array, 0, i-1);
//对右边进行排序
quickSort(array, i+1, high);
}
}
int main(int argc, const char * argv[]) {
int array[] = {3,1,9,2,8,3,7,4};
quickSort(array, 0, 7);
for (int i = 0; i < 8; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
转载于:https://www.cnblogs.com/damonWq/p/5033031.html
1209.1——快速排序算法相关推荐
- 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/
大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...
- 快速排序算法实现思想个人理解
一.概述 快速排序是冒泡排序的改进算法.它也是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关键字较大的元素从前面直接放到后面,关键字较小的元素直接从后面放到前面, ...
- 快速排序算法(基于Java实现)
title: 快速排序算法(基于Java实现) tags: 快速排序算法 快速排序算法的原理与代码实现: 一.快速排序算法的原理 快排算法的思想是: 如果需要排序数组中下标从p到r之间的一组数据,我们 ...
- java sort算法名称_快速排序算法(Quick Sort)(java)
/** * 快速排序算法是基于分治策略的一种排序算法,下面是一个递归的快速排序. * @author liuy */ public class QuickSort { public static vo ...
- 【算法】快速排序算法的编码和优化
参考资料 <算法(第4版)> - - Robert Sedgewick, Kevin Wayne <啊哈! 算法> - - 啊哈磊 ...
- Quick Sort 快速排序算法
Table of Contents 前言 算法步骤 选取枢纽元 分割数组 算法实现 小数组和插入排序 结语 前言 快速排序算法应该是常见的排序算法中使用的最多的一个,很多语言内置的排序算法都间接或直接 ...
- 排序算法系列:快速排序算法
概述 在前面说到了两个关于交换排序的算法:冒泡排序与奇偶排序. 本文就来说说交换排序的最后一拍:快速排序算法.之所以说它是快速的原因,不是因为它比其他的排序算法都要快.而是从实践中证明了快速排序在平均 ...
- 快速排序算法C#实现
快速排序算法C#实现 最近想把几大经典的排序算法系统的整理过一遍,写下笔记,算是复习吧!! 1.快速排序. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序 ...
- 快速排序算法_基于位运算的快速排序算法
前言 如果你准备看这篇文章,我就当你是懂快速排序算法原理的. 下面是我在2018年10月3日想到的基于二进制位运算对正整数进行的一种快速排序算法,目前的代码只能对正整数进行有效的排序,当然,稍微修改一 ...
最新文章
- 对C语言 结构体 和 结构变量
- u盘无法复制文件进去_U盘无法复制超过4GB的大文件怎么办?
- Spring MVC测试框架入门–第1部分
- linux 子目录 挂载,linux – NFS4 – 挂载多个子目录
- ZZULIOJ 1067:有问题的里程表
- C语言__builtin_choose_expr实现函数重载
- “十四五”国家重点研发计划“区块链”重点专项 2022年(附pdf下载地址)
- python测试用例不通过发送报告_python+unittest 多用例测试执行失败的问题
- JS编写人物行走动画
- LHC有望揭示新的物理学理论
- 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails
- 【基础知识】~ 建立时间/保持时间
- Vulkan是什么?和我一起完成一个简单的Vulkan应用程序
- 寒江独钓Windows内核编程-双机调试1
- csgo跳投指令_CSGO控制台进阶指令
- 票房破9亿,翻拍片《误杀》凭什么口碑票房双丰收?
- 简单实现Vite的HRM热更新 ———《第二篇热更新上》
- mysql slow query_Mysql 开启 Slow 慢查询
- 快速对帝国竞争算法ICA的了解
- device的注册流程
热门文章
- linux 4.0内核编译选项,linux 2.40.20-8 内核编译选项.doc
- givemesomecredit数据_你是如何走上数据分析之路的?
- Qt--qss(暗橙色)
- C++中 引用与取地址的区别
- 51nod 1649 齐头并进 (djikstra求最短路径,只用跑一次)
- NSString 使用方法总结
- java实现数字(摘要)签名,生成签名文件,防止文件被人篡改内容,分析和实现
- HDU Problem - 1969 Pie(二分,精度)
- 阿里云centos mysql_阿里云ECS服务器CentOS7上安装MySql服务-阿里云开发者社区
- 关于map的下标操作的2个例子