首页 > 代码库 > 双向快速排序
双向快速排序
#include <iostream>using namespace std;void swap(int* p,int* q){ int temp = *p; *p = *q; *q = temp;}//快速排序int partition(int *ptr,int first, int last){ int temp = ptr[first]; int i = first + 1, j = last; while(i < j) { while(ptr[i] < temp && i <= last) ++i; while(ptr[j] > temp) --j; if(i < j) { swap(&ptr[i],&ptr[j]); ++i; --j; } } swap(&ptr[first],&ptr[j]); return j;} void quickSort(int *ptr,int first,int last){ if(first < last) { int q = partition(ptr,first,last); quickSort(ptr,first,q-1); quickSort(ptr,q+1,last); }}int main(){ int a[] = {2,23,45,1,8,2,0}; for(int i =0; i <= 6; ++i) { std::cout << a[i] << " "; } cout << endl; //mergeSort(a,0,6); quickSort(a,0,6); for(int i =0; i <= 6; ++i) { std::cout << a[i] << " "; } std::cout << std::endl; return 0;}
双向快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。