leetcode--912--排序数组
生活随笔
收集整理的這篇文章主要介紹了
leetcode--912--排序数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個整數數組 nums,請你將該數組升序排列。
示例 1:
輸入:nums = [5,2,3,1]
輸出:[1,2,3,5]
示例 2:
輸入:nums = [5,1,1,2,0,0]
輸出:[0,0,1,1,2,5]
提示:
1 <= nums.length <= 50000
-50000 <= nums[i] <= 50000
來源:力扣(LeetCode)
鏈接:leetcode–912–排序數組
代碼:
使用vector的sort函數
自己寫的排序代碼
自接插入排序:(超時)
冒泡排序:(超時)
class Solution { public:vector<int> sortArray(vector<int>& nums) {int n=nums.size();BubbleSort(nums,n);return nums;}void BubbleSort(vector<int>&nums,int n)//冒泡排序{for(int i=0;i<n-1;i++)//關鍵在于循環n-1次{for(int j=0;j<n-i-1;j++)//關鍵在于循環n-i-1{int temp;if(nums[j]>nums[j+1]){temp=nums[j];nums[j]=nums[j+1];nums[j+1]=temp;}}}} };快速排序:
class Solution { public:vector<int> sortArray(vector<int>& nums) {int n=nums.size();QuitSort(nums,0,n,n);return nums;}void QuitSort(vector<int>& nums,int low,int high,int n) {if(low<high){int pivotpos=partition(nums,low,high);QuitSort(nums,low,pivotpos-1,n);QuitSort(nums,pivotpos+1,high,n);} } int partition(vector<int>& nums,int low,int high) {int pivot=nums[low];while(low<high){while(low<high&&pivot>=nums[low])//關鍵>={low++;}nums[high]=nums[low];while(low<high&&pivot<=nums[high])//關鍵<={high--;}nums[low]=nums[high];}nums[low]=pivot;return low; } };直接選擇排序:(超時)
class Solution { public:vector<int> sortArray(vector<int>& nums) {int n=nums.size();SelectSort(nums,n);return nums;}void SelectSort(vector<int>& nums,int n){int i,j;for( i=0;i<n-1;i++){ int min=i;for( j=i+1;j<n;j++){if(nums[min]>nums[j]){min=j;}}if(nums[min]!=nums[i]){int temp;temp=nums[min];nums[min] =nums[i];nums[i]=temp;}}} };總結
以上是生活随笔為你收集整理的leetcode--912--排序数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 瑞文光速QA教学
- 下一篇: 《征服OL》青岚秘境活动攻略