算法导论 经典算法实现 quicksort
2017-09-29 13:30
127 查看
#include <iostream> using namespace std; // int Partition(int A[], int p,int r){ int x = A[r]; int i = p - 1; for(int j = p; j<r; j++){ if (A[j] <= x){ i = i + 1; swap(A[i],A[j]); } } swap(A[i+1],A[r]); return i + 1; } 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 a[100]; int size; while(cin>>size){ for(int i=1;i<=size;i++){ cin>>a[i]; } QuickSort(a,1,size); for(int i=1;i<=size;i++){ cout<<a[i]<<" "; } } return 0; }
相关文章推荐
- 白话经典算法系列之二 直接插入排序的三种实现 .
- 机器学习经典算法详解及Python实现--聚类及K均值、二分K-均值聚类算法
- 白话经典算法系列之二 直接插入排序的三种实现
- PHP实现各种经典算法
- 白话经典算法系列之三 希尔排序的实现
- 【LeetCode-面试算法经典-Java实现】【105-Construct Binary Tree from Preorder and Inorder Traversal(构造二叉树)】
- 0-1背包问题经典算法(二维数组实现)
- 白话经典算法系列之五 归并排序的实现
- 机器学习经典算法详解及Python实现--元算法、AdaBoost
- 【LeetCode-面试算法经典-Java实现】【120-Triangle(三角形)】
- 经典算法学习——单链表实现冒泡排序(带头结点)
- 白话经典算法系列之二 直接插入排序的三种实现
- 白话经典算法系列之二 直接插入排序的三种实现
- 【LeetCode-面试算法经典-Java实现】【199-Binary Tree Right Side View(从右边看二叉树)】
- 经典算法的Python实现(2)
- 白话经典算法系列之五 归并排序的实现
- 白话经典算法系列之中的一个 冒泡排序的三种实现
- 白话经典算法系列之五 归并排序的实现(改)
- 白话经典算法系列之一 冒泡排序的三种实现 .
- 【LeetCode-面试算法经典-Java实现】【027-Remove Element(删除数组中指定的元素)】