题解 | #排序#
排序
https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
#include <cmath> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 将给定数组排序 * @param arr int整型vector 待排序的数组 * @return int整型vector */ vector<int> MySort(vector<int>& arr) { // write code here //冒泡排序 QuickSort(arr,0,arr.size()-1); return arr; } void QuickSort(vector<int>&arr,int low,int high){ if (low<high) { int mid = Partition(arr,low,high); QuickSort(arr, low, mid-1); QuickSort(arr, mid+1, high); } } int Partition(vector<int>&arr,int low, int high){ int left = low; int right = high; int temp = arr[left]; while(left<right){ while (arr[right]>=temp && left<right) { right--; } arr[left] = arr[right]; while (arr[left]<temp&&left<right) { left++; } arr[right]=arr[left]; } arr[left] = temp; return left; } };