qsort原理和实现
2015-09-23 21:28
190 查看
#include <iostream> #include <stdlib.h> #include <ctime> using namespace std; // 确定快速排序中间值那个位置,用来进行比较 // 左边的值 < 右边的值 int prtition(int *A, int p, int r) { int i,j,x; x = A[r]; i= p-1; for(j=p; j<r; j++) { if(A[j] <= x) { i++; swap<int>(A[i], A[j]); } } swap<int>(A[i+1], A[r]); return i+1; } // 快速排序算法, 递归 void quicksort(int *A, int p, int r) { if(p >= r) return ; int q = prtition(A,p,r); quicksort(A,p,q-1); quicksort(A,q+1,r); } // 排序后结果显示 void show(int *A, int p,int r) { for(int i=p; i<=r; i++) cout << A[i] << " "; cout << endl; } int main() { int i; int A[10]; srand((unsigned int)time(NULL)); for(i=0; i<10; i++) A[i] = rand() % 20; Show(A,0,9); quicksort(A,0,9); Show(A,0,9); system("pause"); return 0; }
相关文章推荐
- 快速排序
- C#快速排序算法实例分析
- C++快速排序的分析与优化详解
- php简单实现快速排序的方法
- Java 快速排序(QuickSort)原理及实现代码
- 快速排序和分治排序介绍
- java 算法之快速排序实现代码
- Java实现快速排序算法(Quicktsort)
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- C/C++实现快速排序的方法
- c语言实现冒泡排序、希尔排序等多种算法示例
- 深入单链表的快速排序详解
- C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- C语言中qsort函数用法实例小结
- JavaScript实现快速排序的方法
- C#使用委托实现的快速排序算法实例
- C语言的冒泡排序和快速排序算法使用实例
- javascript与Python快速排序实例对比
- php实现快速排序的三种方法分享
- PHP两种快速排序算法实例