快速排序(N.Lomuto版)
来源:互联网 发布:花千骨网络视频 编辑:程序博客网 时间:2024/05/16 01:43
这个版本的快速排序是由N.Lomuto提出来的。
基本排序步骤如下图所示:
/* * 名 称: 快速排序 * 作 者: Brooke gao * 日 期: 2013/6/17 * */#include <stdio.h>#define SIZE 100void swap(int *x, int *y){ int temp; temp = *x; *x = *y; *y = temp;}int Partition(int *A, int p, int r){ int x, i, j; x = A[r]; i = p - 1; for(j = p; j <= r - 1; j++) { if(A[j] <= x) { i++; swap(&A[i],&A[j]); } } swap(&A[i+1],&A[r]); return i+1;}void QuickSort(int *A, int p, int r){int q;if(p < r){q = Partition(A,p,r);QuickSort(A,p,q-1);QuickSort(A,q+1,r);}}void PrintResult(int *A, int size){int i; for(i = 0; i < size; i++) { printf("%-2d",A[i]); } putchar('\n');}int main(void){ int i, sum; int A[SIZE]; printf("输入需排序的元素个数(0-100): "); scanf("%d",&sum); printf("请输入%d个元素:\n",sum); for(i = 0; i < sum; i++) {scanf("%d",&A[i]); } QuickSort(A,0,sum-1); printf("排序结果:\n"); PrintResult(A,sum);}
- 快速排序(N.Lomuto版)
- 复杂度nlog(n)之快速排序
- 快速排序, 堆排序,归并排序【N*logN】
- 快速排序——非稳定排序nlog(n)
- 高级排序之快速排序 O(n*logn)
- 快速排序改进版,时间复杂度为:O(nk+nlog(n/k))
- 【快速】排序, T(n) = O(nlgn),O(n^2) S(n) = O(lgn) --- 不稳定
- 快速排序&半快速排序思想求n个无序数中第k或者前k个数
- 快速排序-void qsort ( int a[], int n)
- 快速排序--weiss版
- php版 快速排序
- 快速排序(java版)
- 快速排序(优化版)
- 快速排序【递归版】
- 递归版快速排序
- 快速排序 java版
- 快速排序java版
- java版快速排序
- 一步步构建大型网站架构
- 浅议 Dynamic_cast 和 RTTI
- linux下搭建SVN服务器完全手册
- git 的使用(一)工作区暂存区和版本库
- 如何更改cygwin的起始路径..
- 快速排序(N.Lomuto版)
- 纳兰性德诗词
- Connector:Connection time out. HRESULT=0x800A1527
- C++读书笔记
- WPF之Binding基础四 使用DataContext作为Binding的源
- log4j在jetty服务器下生成的log日志文件的相对路径问题
- 读书摘抄
- html5<canvas>标签绘制矩形,线条,圆
- 强制类型转换