学习笔记之快速排序

    xiaoxiao2021-12-14  36

    //快速排序算法----采用递归方法,选择枢轴 #include <iostream> #include <conio.h> using namespace std; //从左到右依次变大 template<class T> void QuickSort(T *a,const int left,const int right) {     if (left<right)     {         //选取枢轴进行划分         int i=left;         int j=right+1;//加1后可以简化while(a[j]>pivot)的条件         int pivot=a[left];         do{             do i++;while(a[i]<pivot);             do j--;while(a[j]>pivot);             if(i<j) {                swap(a[i],a[j]);                cout<<i<<"\t"<<j<<endl;             }                    }while(i<j);         cout<<i<<"\t"<<j<<endl;         swap(a[left],a[j]);         QuickSort(a,left,j-1);         QuickSort(a,j+1,right);     } } int main() {     int a[]={3,2,1,33};     QuickSort(a,0,2);     for (int i=0;i<3;i++)     {         cout<<a[i];     }     cout<<endl;     getch();     return 0;  }
    转载请注明原文地址: https://ju.6miu.com/read-969618.html

    最新回复(0)