算法排序交换类快速排序QuickSort
Posted lpworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法排序交换类快速排序QuickSort相关的知识,希望对你有一定的参考价值。
#include<stdio.h> //快速排序 int main() int a[]=2,1,5,4,3,8,9,6,7; int* b=a-1+sizeof(a)/4; //基准指针 int* i=a-1; //慢指针 int* j=a; //快指针 int QS(int* tb,int* ti,int* tj); QS(b,i,j); for(int k=0;k<sizeof(a)/4;k++) printf("%d ",a[k]); //QuickSort int QS(int* tb,int* ti,int* tj) //如果数组空或只有一个数不用排序 if(tb<=tj) return 0; void swap(int *ti2,int* tj2); int* b=tb; int* i=ti; int* j=tj; int* t=ti; while(true) if(*j<*b) i++; swap(i,j); j++; else j++; if(j==b) i++; swap(i,j); break; //判断左区是否还可以运算 if(i>t+1) QS(i-1,t,t+1); //判断右区是否还可以运算 if(b>i+1) QS(b,i,i+1); //交换两个指针的数据 void swap(int *ti2,int* tj2) int t=*ti2; *ti2=*tj2; *tj2=t;
以上是关于算法排序交换类快速排序QuickSort的主要内容,如果未能解决你的问题,请参考以下文章