4、快速排序
来源:互联网 发布:python 2.x.msi 编辑:程序博客网 时间:2024/05/23 02:00
排序在各种场合经常被用到。快速排序是十分常用的高效率的算法。
其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。
这样,排序问题就被分割为两个子区间。
再分别对子区间排序就可以了。
下面的代码是一种实现,请分析并填写划线部分缺少的代码。
填空部分:等到该数能够排的排完后,就将该数与找到的比它小的数交换位置,这样下面才能继续递归,否则第一个数总是5,下面递归的时候总是以5作为标准。
#include <stdio.h>void swap(int a[], int i, int j){ int t = a[i]; a[i] = a[j]; a[j] = t;}int partition(int a[], int p, int r){ int i = p; int j = r + 1; int x = a[p]; while(1){ while(i<r && a[++i]<x); while(a[--j]>x); if(i>=j) break; swap(a,i,j); } swap(a,p,j); //填空部分 return j;}void quicksort(int a[], int p, int r){ if(p<r){ int q = partition(a,p,r); quicksort(a,p,q-1); quicksort(a,q+1,r); }}int main(){ int i; int a[] = {5,13,6,24,2,8,19,27,6,12,1,17}; int N = 12; quicksort(a, 0, N-1); for(i=0; i<N; i++) printf("%d ", a[i]); printf("\n"); return 0;}
0 0
- 排序4快速排序
- 排序(4) ---快速排序
- [排序算法4] - 快速排序
- 排序(4)快速排序
- 排序算法(4)----快速排序
- (4)快速排序
- 4、快速排序
- 排序-4-快速
- 排序算法4--快速排序法
- 4 -- 交换排序之快速排序
- C++ 排序算法(4)---快速排序
- 排序算法(4)——快速排序
- 排序算法4_快速排序
- 排序4--快速(分治法)
- 数据结构基础(4) --快速排序
- 数据结构基础(4) --快速排序
- 数据结构(4)快速排序
- 数据结构基础(4) --快速排序
- PAT-B 1016. 部分A+B (15)
- 蓝桥杯——递归二:典型递归模型(2017.2.20)
- omnet++ Simulation terminated with exit code: -1073741819 的一个解决方案
- java中this用法和javascript中的this用法
- 寻找WindowsFormsHost的苦难历程
- 4、快速排序
- PythonOCC 教程1: 安装
- 第三章-使用字符串——python基础教程(第二版)笔记
- [LeetCode] Palindrome Number 解题报告
- Android 缓存机制(二)
- 微信小程序,不可不知的一二三四
- 第三方开源库:流式布局:FlowLayout
- 开源PLM软件Aras详解七 在Aras的Method中如何引用外部DLL
- .cpp调用.c的变量或函数【转】