快速排序(C++版)
生活随笔
收集整理的這篇文章主要介紹了
快速排序(C++版)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include <iostream>
#include <vector>using namespace std;void quickSort(vector<int>& nums,int begin,int end){if(begin>=end) return;int left=begin,right=end;int temp=nums[left];//注意!!!while(left<right){while(left<right&&nums[right]>=temp){right--;}if(left<right) nums[left++]=nums[right];//++操作while(left<right&&nums[left]<=temp){left++;}if(left<right) nums[right--]=nums[left];}nums[left]=temp;quickSort(nums,begin,left-1);quickSort(nums,left+1,end);
}void print(vector<int>& nums){for(auto a: nums) cout<<a<<" ";cout<<endl;
}int main(){vector<int> nums{1,3,2,58,5,6,43,54,65,55,55,55};quickSort(nums,0,nums.size()-1);print(nums);return 0;
}
時間復(fù)雜度:平均:nlog(n), 最好nlog(n), 最壞n^2
空間復(fù)雜度:O(1)
快速排序->不穩(wěn)定
總結(jié)
以上是生活随笔為你收集整理的快速排序(C++版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 希尔排序(C++版)
- 下一篇: 堆排序(C++版)