快速排序
来源:互联网 发布:淘宝香水嗅觉系真假 编辑:程序博客网 时间:2024/06/06 00:27
- #include<iostream>
- #define MAXN 10
- int hoare_partition(int arr[],int p,int q){
- int i,j,x,t;
- x=arr[p];
- i=p;
- j=q;
- while(1){
- for(;i<q && arr[i] < x;i++);
- for(;j>p && arr[j]>=x;j--);
- if(i<j){
- t = arr[i];
- arr[i] = arr[j];
- arr[j] = t;
- }else{
- return j;
- }
- }
- }
- void hoare_qsort(int arr[],int p,int q){
- if(p>=q)
- return;
- int pivot = hoare_partition(arr,p,q);
- hoare_qsort(arr,p,pivot);
- hoare_qsort(arr,pivot+1,q);
- }
- int partition(int arr[],int p,int q){
- int i,j,x,t;
- x = arr[q];
- i = p-1;
- for(j=p;j<=q;j++){
- if(arr[j]<x){
- t = arr[++i];
- arr[i] = arr[j];
- arr[j] = t;
- }
- }
- t = arr[i+1];
- arr[i+1] = arr[q];
- arr[q] = t;
- return i+1;
- }
- void quick_sort(int arr[],int p, int q){
- if(p>=q)
- return;
- int pivot = partition(arr,p,q);
- quick_sort(arr,p,pivot-1);
- quick_sort(arr,pivot,q);
- }
- int main(){
- int arr[MAXN] = {6,9,11,5,1,2,4,10,8,3};
- printf("Classical quick sort:");
- quick_sort(arr,0,MAXN-1);
- for(int i=0;i<MAXN;i++)
- printf("%d ",arr[i]);
- printf("\nEarliest quick sort:");
- hoare_qsort(arr,0,MAXN-1);
- for(int i=0;i<MAXN;i++)
- printf("%d ",arr[i]);
- }
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- MVC5创建自定义图片链接
- 二叉搜索树的插入和删除
- leetcode_136
- A Discriminative Feature Learning Approach for Deep Face Recognition, ECCV16.
- Android之内存泄露LeakCanary检测
- 快速排序
- 第82篇 webrtc一对一研究(十)及php
- 最简单的webview监听及传值
- 数据结构示例之用链表实现栈
- Linux命令之"df"
- 将一个链表中结点的值按奇偶拆分,使其中一个链表结点的值为偶数,另一个为奇数
- canvas学习笔记(一)——关于css设置canvas画布大小的问题
- 逻辑回归
- Appium For Android and IOS By Java