|
復(fù)制代碼 代碼如下:
static void Reverse(int[] array, int begin, int end)
{
...
}
Reverse方法的作用是將array數(shù)組中,從begin下標(biāo)到end下標(biāo)之間的元素反序一下,如一個數(shù)組初始值是[1, 2, 3, 4, 5, 6],begin為1,end為4,那么當(dāng)調(diào)用了Reverse之后,array數(shù)組中的元素便依次成為[1, 5, 4, 3, 2, 6],其中從array[1]到array[4]之前的元素被反序了。此外補充一點……其實本不用補充:這個方法需要對傳入?yún)?shù)的正確性進行校驗,如果用戶調(diào)用該方法時傳入了非法的參數(shù),那么則需要拋出異常,并寫清原因。您可以使用您喜歡的語言來實現(xiàn):C#,VB,Java,Ruby,Python……但是請不要使用內(nèi)置庫中已經(jīng)有的功能。:)
很簡單,不是嗎?只可惜截止到目前,也只有1人給出了正確答案。如果您沒有做過這道題目,那么在查看下面的分析之前,不妨拿張紙拿支筆,寫下您的答案,然后再聽老趙慢慢講來…
主體邏輯
這道題目的主題邏輯其實非常簡單。不就是把數(shù)組中的一部分反序嗎?不過從這一點上面來說,代碼的清晰程度也有較大差距。好的做法和普通的做法,從編程難度和理解上都有一定差距。例如:
1、許多朋友的做法是:既然是反轉(zhuǎn)數(shù)組的一部分元素,那么只要找到中間的位置,然后計算出和begin的偏移量,然后……怎么怎么一搞,就完成了――嗯,似乎還需要根據(jù)進行begin和end中間的元素個數(shù)是奇數(shù)還是偶數(shù)分別處理。
2、另一些朋友的做法是:開一個新數(shù)組(長度為end - begin + 1),將begin到end之間的元素放到新數(shù)組中去,然后反序,然后再復(fù)制回來。
3、還有一個朋友認(rèn)為用棧:把begin到end之間的元素給push到棧中,再一個一個pop出來依次賦值給begin到end,這樣就反序了……唔!數(shù)據(jù)結(jié)構(gòu)學(xué)的不錯!
只可惜,這樣的做法都復(fù)雜了一些。3種做法的時間復(fù)雜度均為O(end 主站蜘蛛池模板: 国产www视频 | 琪琪热热色原日韩在线 | 国产Av男人的天堂精品良久 | 欧美 另类 美腿 亚洲 无码 | 亚洲成AV人片一区二区不卡 | ai换脸在线全集观看 | 男女全黄h全肉细节文 | 精品无码国产AV一区二区三区 | 男生扒开美女尿口戳戳 | 欧美人成在线观看ccc36 | 亚洲国产成人精品不卡青青草原 | 亚洲 欧美 另类 中文 在线 | 国产成人a v在线影院 | 麻豆国产MV视频 | 男宿舍里的呻吟h | 成人动漫百度影音 | 欧美一区二区影院 | 亚洲一区二区三不卡高清 | 久久AV国产麻豆HD真实 | 果冻传媒在线播放 免费观看 | 欧美一区二区视频在线观看 | 亚洲AV无码久久流水呻蜜桃久色 | 涩涩视频在线看 | 我的漂亮朋友在线观看全集免费 | 拍床戏被肉高H纯肉H在水 | 巨胸美女狂喷奶水www网麻豆 | 欧美亚洲色帝国 | 强上轮流内射高NP男男 | YELLOW高清视频免费观看 | 国产精品久久久久无码AV色戒 | 久久这里的只有是精品23 | 4399亚洲AV无码V无码网站 | 夜色私人影院永久入口 | 亚洲日韩中文字幕区 | 国产精品你懂的在线播放 | 欧美高清videossexo | 沟沟人体一区二区 | 国产成人精品三级在线 | 成人欧美尽粗二区三区AV | 久久亚洲这里只有精品18 | 久久免费看少妇高潮A片JA |