亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現在數組A上有序合并數組B的方法

2020-01-26 15:18:13
字體:
來源:轉載
供稿:網友

本文實例講述了C語言實現在數組A上有序合并數組B的方法,分享給大家供大家參考。具體分析如下:

題目:數組A和數組B均有序,數組A有足夠大內存來容納數組B,將數組B有序合并到數組A中

分析:如果由前至后合并,復雜度將會是O(N2),這樣的復雜度顯然不是最優解,利用兩個指針指向兩個數組的尾部,從后往前遍歷,這樣的復雜度為O(n2)

由此可以寫出下面的代碼:

#include <iostream>#include <algorithm>#include <iterator>using namespace std;int arrayA[10] = {1, 3, 5, 7, 9};int arrayB[] = {2, 4, 6, 8, 10};const int sizeB = sizeof arrayB / sizeof *arrayB;const int sizeA = sizeof arrayA / sizeof *arrayA - sizeB;int* mergeArray(int *arrayA, int sizeA, int *arrayB, int sizeB){ if (arrayA == NULL || arrayB == NULL || sizeA < 0 || sizeB < 0) return NULL; int posA = sizeA - 1; int posB = sizeB - 1; while (posA >= 0 && posB >= 0) { if (arrayA[posA] < arrayB[posB]) {  arrayA[posA + posB + 1] = arrayB[posB];  posB--; } else {  arrayA[posA + posB + 1] = arrayA[posA];  posA--; } copy(arrayA, arrayA + 10, ostream_iterator<int>(cout, " ")); system("pause"); } return arrayA;}void main(){ int *result = mergeArray(arrayA, sizeA, arrayB, sizeB); copy(result, result + 10, ostream_iterator<int>(cout, " ")); cout << endl;}

代碼寫完后似乎完成了所需功能,但還不止于此,必須對上述代碼做UT

1. 健壯性

arrayA或arrayB為空,長度小于0

2. 邊界用例

arrayA為空,長度為1;arrayB不為空,長度大于1
首元素用例
const int size = 6;
int arrayA[size] = {2};
int arrayB[] = {0, 1, 1, 1, 1};
反之
const int size = 6;
int arrayA[size] = {0, 1, 1, 1, 1};
int arrayB[] = {2};

3. 正常用例:

const int size = 10;
int arrayA[size] = {1, 3, 5, 7, 9};
int arrayB[] = {2, 4, 6, 8, 10};

const int size = 10;
int arrayA[size] = {2, 4, 6, 8, 10};
int arrayB[] = {1, 3, 5, 7, 9};

const int size = 10;
int arrayA[size] = {1, 2, 3, 4, 5};
int arrayB[] = {6, 7, 8, 9, 10};

const int size = 10;
int arrayA[size] = {6, 7, 8, 9, 10};
int arrayB[] = {1, 2, 3, 4, 5};

經過上面的測試,不難發現在邊界條件用例中,代碼已經不能正確運行出結果,在測試用例的驅動下,不難寫出正確代碼如下:

int* mergeArray(int *arrayA, int sizeA, int *arrayB, int sizeB){ if (arrayA == NULL || arrayB == NULL || sizeA < 0 || sizeB < 0) return NULL; int posA = sizeA - 1; int posB = sizeB - 1; while (posA >= 0 && posB >= 0) { if (arrayA[posA] < arrayB[posB]) {  arrayA[posA + posB + 1] = arrayB[posB];  posB--; } else {  arrayA[posA + posB + 1] = arrayA[posA];  posA--; } copy(arrayA, arrayA + size, ostream_iterator<int>(cout, " ")); system("pause"); } //出現兩種情形: //1. posA < 0 && posB >= 0 //2. posA >= 0 && posB < 0 //只有第1種情形需要進行處理 if (posA < 0 && posB >= 0) { while (posB >= 0) {  arrayA[posA + posB + 1] = arrayB[posB];  posB--; } }  return arrayA;}

相信本文所述對大家C程序算法設計的學習有一定的借鑒價值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜女主播在线直播| 成人国产精品一区二区| 91伊人影院在线播放| 欧美日韩美女在线观看| 日韩欧美aⅴ综合网站发布| 成人在线观看视频网站| 亚洲免费精彩视频| www.欧美精品一二三区| 国模精品一区二区三区色天香| 亚洲国产美女精品久久久久∴| 亚洲欧美日韩在线一区| 久久影院资源网| 国产视频丨精品|在线观看| 在线播放国产一区二区三区| 日韩在线精品一区| 国产精品视频免费在线| 欧美亚洲免费电影| 国产精品爱啪在线线免费观看| 国产精品视频免费在线| 日韩亚洲欧美成人| 久久久精品在线| 亚洲一区二区三区在线免费观看| 成人在线激情视频| 色爱av美腿丝袜综合粉嫩av| 91爱视频在线| 日韩欧美在线视频观看| 国产精品一区二区av影院萌芽| 亚洲欧美三级伦理| 欧美日韩美女在线观看| 精品国内产的精品视频在线观看| 欧美日韩一区二区在线| 欧美性生交大片免网| 精品香蕉在线观看视频一| 亚洲欧美日韩久久久久久| 久久久国产视频| 亚洲第一区在线观看| 亚洲成色www8888| 国产成人一区二区| 亚洲精品国产精品自产a区红杏吧| 欧美激情综合色| 福利微拍一区二区| 成人免费视频网址| 亚洲精品久久久一区二区三区| 久久国产精品久久久久久| 亚洲欧美成人一区二区在线电影| 欧美日韩国产第一页| 国产欧美日韩免费| 2019亚洲男人天堂| 亚洲乱码一区av黑人高潮| 欧美一级片久久久久久久| 日本精品va在线观看| 欧美高清在线视频观看不卡| 国产在线精品一区免费香蕉| 国模私拍视频一区| 精品亚洲一区二区三区四区五区| 91伊人影院在线播放| 亚洲第一精品电影| 伊人成人开心激情综合网| 欧美理论电影网| 日韩精品免费综合视频在线播放| 精品动漫一区二区| 亚洲女人天堂色在线7777| 51精品国产黑色丝袜高跟鞋| 久久五月情影视| 欧美成人网在线| 97精品国产97久久久久久| 69影院欧美专区视频| 最近2019好看的中文字幕免费| 日韩经典第一页| 亚洲精品久久久久久久久久久| 久久久精品在线观看| 国产精品视频久久| 日韩欧美成人精品| 久久久999国产精品| 欧美激情在线一区| 精品偷拍一区二区三区在线看| 国产欧美精品va在线观看| 黑人巨大精品欧美一区二区| 亚洲精品成人av| 日韩av免费在线播放| 欧美日韩在线免费观看| 国产91热爆ts人妖在线| 欧美高清一级大片| 精品人伦一区二区三区蜜桃网站| 欧美精品激情在线观看| 亚洲另类欧美自拍| 国产亚洲一区精品| 欧美激情精品久久久久久变态| 亚洲激情免费观看| 日韩高清免费观看| 九九久久精品一区| 国产精品久久久久免费a∨大胸| 欧美一区二区三区免费观看| 国产精品偷伦免费视频观看的| 国产一区二区三区网站| 伊人伊人伊人久久| 一区二区欧美日韩视频| 国产精品自拍偷拍视频| 91人成网站www| 精品久久久在线观看| 色偷偷亚洲男人天堂| 国产成人精品日本亚洲专区61| 日韩精品在线观看一区二区| 久久视频免费在线播放| 精品视频久久久久久| 欧美尺度大的性做爰视频| 精品视频在线播放| 97av在线播放| 亚洲最大福利视频| 久久97久久97精品免视看| 久久激情五月丁香伊人| 久久影视电视剧免费网站| 日韩色av导航| 欧美壮男野外gaytube| 久久久久久久成人| 国语自产精品视频在线看| 日韩久久免费视频| 欧美激情亚洲一区| 国产成+人+综合+亚洲欧洲| 国产成人精品网站| 成人国产亚洲精品a区天堂华泰| 成人免费在线视频网址| 亚洲精品电影在线| 日韩免费av片在线观看| 国产精品色视频| 国产精品久久久久福利| 91夜夜揉人人捏人人添红杏| 精品久久久久久久久久久久久| 亚洲国产毛片完整版| 蜜臀久久99精品久久久久久宅男| 亚洲综合中文字幕在线观看| 亚洲护士老师的毛茸茸最新章节| 亚洲黄色www网站| 伊人伊成久久人综合网小说| 欧美成在线观看| 欧美黄网免费在线观看| 亚洲欧美日韩精品久久奇米色影视| 成人亚洲综合色就1024| 久久成人精品一区二区三区| 精品亚洲永久免费精品| 欧美性猛交xxxx富婆弯腰| 国模精品视频一区二区三区| 日本91av在线播放| 91欧美精品午夜性色福利在线| 国产日韩欧美在线看| 日韩av在线免费看| 亚洲成人久久久久| 欧美激情一区二区三区久久久| 欧美精品在线看| 国产精品国产自产拍高清av水多| 操人视频在线观看欧美| 欧美高清自拍一区| 日韩高清电影免费观看完整| 亚洲午夜av久久乱码| 欧美另类暴力丝袜| 岛国av在线不卡| 国产日韩欧美日韩大片| 色综合亚洲精品激情狠狠| 日韩av手机在线看| 国产精品美女午夜av| 色综合亚洲精品激情狠狠| 美女视频黄免费的亚洲男人天堂| 亚洲午夜精品久久久久久性色| 亚洲人午夜精品免费|