国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【面試題】劍指offer14

2019-11-06 06:37:38
字體:
來源:轉載
供稿:網友

題目: 調整數組數據使奇數全部在偶數前面 解法一:

void oddnumberfront1(int *arr,int length){ if (arr==NULL||length==0) { return; } int* first; int* last; first=arr; last=arr+length-1; while(first<last) { while(first<last&&(*first& 0x1)!=0) { first++; } while (first<last&&(*last& 0x1)==0) { last--; } if(first<last) { int tmp=*first; *first=*last; *last=tmp; } }}

這種解法比較單一,只能解答這一種問題 解法二:將判斷是否為偶數單獨作為一個函數,這樣要是限制條件改變后,只改變這個函數即可,下面添加了可被3整除的在后面,不被的在前面

#include<iostream>#include<cstdlib>using namespace std;bool isEven(int n)//判斷是否為偶數{ return (n&1)==0;}bool is3multiplc(int n)//判斷是否可以被3整除{ return (n%3)==0;}void Reorder(int *arr,int length,bool(*func)(int)){ if(arr==NULL||length==0) return; int * first=arr; int * last=arr+length-1; while(first<last) { while (first<last&&!isEven(*first)) { first++; } while (first<last&&isEven(*last)) { last--; } if(first<last) { int tmp=*first; *first=*last; *last=tmp; } }}void mulitplc(int *arr,int length,bool(*func)(int)){ if(arr==NULL||length==0) return; int * first=arr; int * last=arr+length-1; while(first<last) { while (first<last&&!is3multiplc(*first)) { first++; } while (first<last&&is3multiplc(*last)) { last--; } if(first<last) { int tmp=*first; *first=*last; *last=tmp; } }}void ReorderOddEven(int * arr,int length){ Reorder(arr,length,isEven);}void muliptlc3front(int * arr,int length){ mulitplc(arr,length,isEven);}void PRintArr(int* arr,int length){ if(arr==NULL||length==0) return; for (int i=0;i<length;i++) { cout<<arr[i]<<" "; } cout<<endl;}void test1(){ int arr[]={1,2,3,4,5,6,7,8,9}; ReorderOddEven(arr,9); printArr(arr,9); }void test2(){ int arr1[]={1}; ReorderOddEven(arr1,1); printArr(arr1,1);}void test3(){ int* arr2=NULL; ReorderOddEven(arr2,0); printArr(arr2,0);}void test4(){ int arr[]={1,2,3,4,5,6,7,8,9}; muliptlc3front(arr,9); printArr(arr,9);}int main(){ cout<<"test1:"<<endl; test1(); cout<<"test2:"<<endl; test2(); cout<<"test3:"<<endl; test3(); cout<<"test4:"<<endl; test4(); system("pause"); return 0;}

結果 結果


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 白朗县| 英吉沙县| 上杭县| 陆良县| 荆州市| 金溪县| 乌审旗| 万全县| 泰和县| 余干县| 玉山县| 榕江县| 仲巴县| 永平县| 措勤县| 沾化县| 兰考县| 成安县| 东光县| 湄潭县| 会泽县| 德清县| 凤庆县| 浦江县| 东明县| 平定县| 当阳市| 舞钢市| 平和县| 青岛市| 平陆县| 吕梁市| 宁河县| 图们市| 泽普县| 涞水县| 沂南县| 吉林省| 怀宁县| 孝昌县|