快速排序(QuickSort)是一种常用的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按此方法分别对这两部分数据进行快速排序,整个过程递归进行,最终得到有序的数据序列
快速排序(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
函数对该数组进行排序。最后,输出排序后的数组。
版权声明
本文仅代表作者观点,不代表博信信息网立场。
上一篇:HTML如何制作一个简单的单页布局(代码分享) 下一篇:域名是什么?有什么用?