学堂 学堂 学堂公众号手机端

快速排序(QuickSort)是一种常用的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按此方法分别对这两部分数据进行快速排序,整个过程递归进行,最终得到有序的数据序列

lewis 1年前 (2024-03-23) 阅读数 4 #技术

快速排序(QuickSort)是一种常用的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按此方法分别对这两部分数据进行快速排序,整个过程递归进行,最终得到有序的数据序列。

以下是使用C++实现快速排序算法的示例代码:

#include<iostream> usingnamespacestd; //交换数组中两个元素的位置 voidswap(int*a,int*b){ inttemp=*a; *a=*b; *b=temp; } //分割函数,以pivot为基准将数组分割成两部分 intpartition(intarr[],intlow,inthigh){ intpivot=arr[high];//选择最后一个元素作为基准 inti=low-1;//i指向小于基准的元素 for(intj=low;j<=high-1;j++){ if(arr[j]<pivot){ i++; swap(&arr[i],&arr[j]); } } swap(&arr[i+1],&arr[high]); returni+1; } //快速排序函数 voidquickSort(intarr[],intlow,inthigh){ if(low<high){ intpivot_index=partition(arr,low,high); quickSort(arr,low,pivot_index-1); quickSort(arr,pivot_index+1,high); } } intmain(){ intarr[]={9,5,7,2,4,10,8,1,6,3}; intn=sizeof(arr)/sizeof(arr[0]); quickSort(arr,0,n-1); cout<<"排序后的数组:"; for(inti=0;i<n;i++){ cout<<arr[i]<<""; } cout<<endl; return0; }

以上代码中,swap函数用于交换数组中两个元素的位置,partition函数用于将数组分割成两部分,quickSort函数用于递归地对两部分进行快速排序。


main函数中,我们定义了一个待排序的数组arr,然后调用quickSort函数对该数组进行排序。最后,输出排序后的数组。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门