著名的快数排序Quick-sort
2007-01-07 22:32
525 查看
#include "stdafx.h"
#include <iostream>
int Partition(int A[], int p, int r)
...{
int x = A[r];//选择x=A[r]作为主元
int i = p -1;
for(int j = p; j <= r-1; j++)
if(A[j] <= x)//假设A[i]大于x,那么就不用移动了。第二个语句swap()将x移动到最左方,所以比x大的数都在右方。
...{ //假设A[j]小于x,因为A[i]的下标i始终小于等于j,那么说明A[i]是大于x的值,否则便是被移动了。
i = i+1;//这样第一个函数swap()将把大于x的A[i]与小于x的A[j]互相交换位置。
std::swap(A[i], A[j]);
}
std::swap(A[i+1], A[r]);
return i+1;
}
void Quick_Sort(int A[], int p ,int r)
...{
if(p < r)
...{
int q = Partition(A, p, r);
Quick_Sort(A, p, q-1);
Quick_Sort(A, q, r);
}
}
int main(int argc, char* argv[])
...{
int C[12] = ...{100,4,8,7,6,32,5,4,8,1,2,1};
Quick_Sort(C, 0, 11);
for(int i = 0; i <= 11; i++)
std::cout<<C[i]<<" ";
return 0;
}
相关文章推荐
- 排序——快速排序(quick_sort)
- 快速排序_quick_sort
- c语言数组五种排序法:bubble,choise,quick,insert,shell 和js 数组排序sort的区别
- 内部排序之Quick Sort
- 笔试算法题(56):快速排序实现之非递归实现,最小k值选择(non-recursive version, Minimal Kth Selection of Quick Sort)
- 快速排序与快速选择算法(quick sort and quick select algorithm)
- 经典排序算法 - 快速排序Quick_sort
- 排序_Quick_Sort(快速排序)
- 算法分析之——quick-sort快速排序
- 笔试算法题(54):快速排序实现之单向扫描、双向扫描(single-direction scanning, bidirectional scanning of Quick Sort)
- Spring Data JPA使用Sort进行排序(Using Sort)
- Java数组排序Arrays.sort
- C++ STL中sort方法对自定义类的排序
- sort 排序 多列 整型
- C/C++自带排序函数——Sort,QuickSort
- C++实现谢尔排序(希尔排序)(shell sort)
- [LeetCode] Sort List 链表排序
- 排序(Sort)
- list<T> Sort 排序
- js数组的sort排序详解