第三章:查詢與排序(下)------------- 3.8題解_調整陣列順序-奇數在左偶數在右
調整陣列順序-奇數在左偶數在右:
法一:模式匹配:歸併排序:
奇數放左邊,偶數放右邊。需另外開闢空間。
#include<iostream>
using namespace std;
void mergeSortOddEven(int arr[],int low, int high){
int length=high-low+1;
int ref[length];
int left=low;
int right=high;
int current=low;
//Copy到ref陣列
for(int i=0;i<length;i++){
ref[i]=arr[i];
}
while(current<length){
if(ref[current]%2==0){
arr[right--]=ref[current++];
}
if((ref[current]%2)!=0){
arr[left++]=ref[current++];
}
}
}
int main(){
int arr[]={2,4,6,1,7,2,8,3,7,3,6};
mergeSortOddEven(arr,0,10);
for(int i=0;i<11;i++){
cout<<arr[i]<<" ";
}
return 0;
}
結果:
法二:模式匹配:快速排序:
左右兩指標,不滿足則交換元素。
#include<iostream>
using namespace std;
void quickSortOddEven(int arr[],int low, int high){
int length=high-low+1;
int left=low;
int right=high;
while(left<right){
while(arr[left]%2==1){
left++;
}
while(arr[right]%2==0){
right--;
}
if(left<right){
swap(arr[left],arr[right]);
}
}
}
int main(){
int arr[]={2,4,6,1,7,2,8,3,7,3,6};
quickSortOddEven(arr,0,10);
for(int i=0;i<11;i++){
cout<<arr[i]<<" ";
}
return 0;
}
結果:
相關文章
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- 【劍指Offer】調整陣列順序使奇數位於偶數前面陣列
- 劍指offer面試題14 調整陣列順序使奇數位於偶數前面面試題陣列
- [每日一題] 第十一題:調整陣列順序使奇數位於偶數前面每日一題陣列
- JZ-013-調整陣列順序使奇數位於偶數前面陣列
- 劍指 Offer 21. 調整陣列順序使奇數位於偶數前面陣列
- 調整陣列順序使奇數位於偶數前面,偶數和偶數之間的相對位置不變陣列
- LeetCode題解(Offer21):調整陣列順序使奇數位於偶數前面(Python)LeetCode陣列Python
- 【劍指Offer學習】【面試題14 :調整陣列順序使奇數位於偶數前面】面試題陣列
- 演算法學習記錄十一(C++)--->調整陣列順序使奇數前偶數後演算法C++陣列
- 陣列進行奇數和偶數操作 把奇數放在陣列前面 偶數放在陣列後面陣列
- 【C語言】調整陣列使奇數全部都位於偶數前面。C語言陣列
- 第三章:查詢與排序(下)----------- 3.9 最快效率求出亂序陣列中第k小的數排序陣列
- 每日一練(24):在排序陣列中查詢數字排序陣列
- 第三章:查詢與排序(下)----------- 3.21基數排序排序
- 第三章:查詢與排序(下)----------- 3.29 題解:判斷陣列的包含問題排序陣列
- 【劍指offer】調整陣列順序陣列
- 面試演算法題(4)--將一個整數陣列中的所有奇數放到偶數前面面試演算法陣列
- 第三章:查詢與排序(下)----------- 3.19 計數排序排序
- 調整陣列元素順序演算法陣列演算法
- 第三章:查詢與排序(下)----------- 3.23 相關題解:排序陣列中找和的因子排序陣列
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- 第三章:查詢與排序(下)----------- 3.27 用計數排序解決員工年齡問題排序
- 給定一個按非遞減順序排序的整數陣列 A,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。排序陣列
- 第三章:查詢與排序(下)----------- 3.14 逆序對個數排序
- C++查詢一個數是否在陣列中find用法C++陣列
- 在一個長度為n的不同元素的陣列中順序查詢元素x,查詢成功時的平均比較次數為多少陣列
- 【劍指offer】數字在排序陣列中出現的次數排序陣列
- 九度 1349 數字在排序陣列中出現的次數排序陣列
- 陣列左邊減去右邊數值的最大差值陣列
- 在AIX下為Oracle調整網路引數AIOracle
- JZ-037-數字在排序陣列中出現的次數排序陣列
- 《劍指offer》:[38]數字在排序陣列中出現的次數排序陣列
- 第三章:查詢與排序(下)----------- 3.20桶排序排序
- 第三章:查詢與排序(下)----------- 3.10 實戰解題_哪個數字超過了一半?排序
- 劍指Offer-39-數字在排序陣列中出現的次數排序陣列
- 在AIX下為Oracle調整磁碟I/O引數AIOracle
- Java陣列排序和查詢Java陣列排序