快速排列初识
来源:互联网 发布:nginx lua 开发环境 编辑:程序博客网 时间:2024/05/19 10:39
快速排列的思想很牛逼
//来一个快速排序。#include<stdio.h>void sort (int *a,int left,int right){ if (left >= right){ //如果左边索引大于等于右边的索引就代表已经整理完成了一个组了 return; } int i = left; int j = right; int key = a[left]; while (i < j){ //控制在当组内寻找一遍 while (i < j&&key <= a[j]){ //而寻找的条件就是1.找个小于或者大于key的数(大于或小于取决于是 j--; //升序还是降序)2.没有符合条件1的,并且i与j的大小没有反转; } //j -- 表示向前寻找 a[i] = a[j]; //当找到了这样一个数的时候就把他赋给了前面被拿走的i的值 //如果是第一次循环且key是a[left],那么就是给key while (i < j&&key >= a[i]){ //这是i在当前组内向前寻找,同上,不过左右两边的数大小与key的关系相反。排序的思想主要是把数往两边扔 i ++; } a[j] = a[i]; } a[i] = key; //当在当前组内找完一遍时,就把中间数key回归 sort(a,left,i-1); //最后用同样的方式对左边分出来的小组进行同上的做法 sort(a,i+1,right); //最后用同样的方式对右边分出来的小组进行同上的做法 //当然最后可能会出现很多的左右,直到每一组的i=j为止}int main(){ int a[10] = {9,8,7,6,5,4,3,2,1,0}; sort(a,0,9); int i; for (i = 0;i < 10;i ++) printf("%d",a[i]); return 0;}
阅读全文
0 0
- 快速排列初识
- 快速排列
- 快速排列
- QuickSort(快速排列)
- 快速组合排列算法
- 蓝桥杯~快速排列
- 冒泡算法 快速排列
- 俩种快速排列
- 初识STORM 快速入手
- HDU 4465 快速全排列
- Python实现快速排列算法
- Redis快速入门:初识Redis
- Redis快速入门:初识Redis
- Redis快速入门:初识Redis
- 字母全排列快速算法C代码
- 字母全排列快速算法C代码
- 字母全排列快速算法C代码
- uva10098 - Generating Fast(快速生成有序排列)
- 深度探索C++ 对象模型【第一章2】
- Files 的值“ < < < < < < < .mine”无效。路径中具有非法字符。
- ESP8266串口处理
- 【算法】Shell排序--C++源代码(VS2015)
- 杨氏矩阵
- 快速排列初识
- 欢迎使用CSDN-markdown编辑器
- 点乘和叉乘
- (EX)CRT+(EX)Lucas BZOJ2142
- SSH与SSM学习之Spring19——Spring事务之事务基础
- 检索模型评价指标
- 插入排序
- eclipse快捷键冲突
- 2017.11.1总结