意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

快速排序是一种常用的排序算法,其基本思想是通过递归地将数组分成两个子数组,然后对这两个子数组分别进行排序

来源:恒创科技 编辑:恒创科技编辑部
2024-03-05 14:12:33

快速排序是一种常用的排序算法,其基本思想是通过递归地将数组分成两个子数组,然后对这两个子数组分别进行排序。具体步骤如下:

  1. 选择一个基准值,可以是数组中的任意一个元素。
  2. 将数组分成两部分,使得左边的元素都小于基准值,右边的元素都大于基准值。
  3. 递归地对左边和右边的子数组进行排序。
  4. 合并左右子数组,得到最终的有序数组。

C++实现快速排序的代码示例如下:

voidquickSort(vector<int>&arr,intlow,inthigh){ if(low<high){ inti=low,j=high,pivot=arr[low]; while(i<j){ while(i<j&&arr[j]>=pivot){ j--; } if(i<j){ arr[i++]=arr[j]; } while(i<j&&arr[i]<pivot){ i++; } if(i<j){ arr[j--]=arr[i]; } } arr[i]=pivot; quickSort(arr,low,i-1); quickSort(arr,i+1,high); } } //使用方法 vector<int>arr={3,1,4,1,5,9,2,6,5,3,5}; quickSort(arr,0,arr.size()-1);

上述代码中,我们首先选择数组的第一个元素作为基准值,然后根据基准值将数组分成两部分。接着递归地对左右子数组进行排序,最终得到一个有序的数组。




快速排序是一种常用的排序算法,其基本思想是通过递归地将数组分成两个子数组,然后对这两个子数组分别进行排序

上一篇: 要结束运行在Linux系统中的程序,可以使用以下几种方法: 使用Ctrl+C组合键:在终端窗口中运行程序时,可以通过按下Ctrl+C组合键来结束程序的运行 下一篇: 要在指定位置添加元素到一个向量(vector),可以使用insert()函数