quick sort 快速排序

来源:互联网 发布:mac下载flash好慢 编辑:程序博客网 时间:2024/05/19 20:43

先上一个能用的代码

#include<stdio.h>void swap(int a[], int i, int j) {int tmp=a[i];a[i] = a[j];a[j] = tmp;}int partition(int a[], int p, int r) {int x = a[r];int i = p-1;int j;for(j=p; j<r; j++) {if(a[j]<x) {i++;swap(a,i,j);}}swap(a, i+1, 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[] = {6,8,1,4,2,3,9,5,7};quicksort(a,0,8);int i;for(i=0;i<9;i++)printf("%d ",a[i]);printf("\n");}

在《算法导论》中,有对quicksort的详细介绍,我先分析一下书中对快速排序的讲解。



原创粉丝点击