快速排序-分治算法
来源:互联网 发布:淘宝网店出售 编辑:程序博客网 时间:2024/06/09 21:05
基本思想:将数组A[1...n]划分为两个子数组A[1...p]和A[p+1...n],使得前子数组中的元素均不大于后子数组中的元素,然后分别对这两个数组进行排序,最后再合并为一个有序数组。
复杂度分析
// quick_sort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <algorithm>using namespace std;#define N 7int A[N] = {0, 4,1,2,7,5,3 };/* 被划分的数组为A[m...p-1],*/void Partion(int m, int &p){ int i=m+1; p--; int v = A[m];//被选定的划分元素 while (true) { while (A[i] <= v) i++; while (A[p] > v) p--; if (i < p) swap(A[i], A[p]); else break; } A[m] = A[p]; A[p] = v; //把划分元素移动到适当位置}void QuickSort(int p, int q){ if (p < q) { int j = q + 1; Partion(p, j); QuickSort(p, j - 1); QuickSort(j + 1, q); }}int main(){ printf("快速排序前:\n"); for (int i = 1; i < N; i++) printf("%d\t", A[i]); printf("\n\n\n**************************************************\n快速排序后:\n\n"); QuickSort(1, N-1); for (int i = 1; i < N; i++) printf("%d\t", A[i]); printf("\n\n\n\n"); return 0;}
0 0
- 分治算法-快速排序
- 分治算法----快速排序
- 快速排序-分治算法
- 分治算法---快速排序
- 分治算法 快速排序
- 分治算法之快速排序
- 分治算法之快速排序
- 分治法-----快速排序算法
- 分治算法之快速排序
- 快速排序算法-分治思想
- 分治算法实现快速排序
- 分治算法之快速排序
- 分治算法之快速排序
- 快速排序分治算法解析
- 分治算法之快速排序
- 快速排序(分治算法)
- 【算法】分治法(快速排序,归并排序)
- 排序算法--快速排序(分治法)
- rapidPHP 1.1.0 - 数据库表单跟实体配置
- 网页中添加QQ聊天代码
- HDU 2067 小兔的棋盘 (组合数学 卡特兰数)
- 一个关于成员变量的多态问题
- Android自定义带进度的刻度条
- 快速排序-分治算法
- 创建一个聊天服务器
- rapidPHP 1.1.0 - 脚本生成器
- tableview cells after several cells can not selected
- mysql数据库入门
- 有时候你需要的只是再坚持一会
- 我们也来编写个Twitter
- rapidPHP 1.1.0 - 自动加载
- 关于移动