Java字串反轉的幾種方法 數冒泡對調效率最佳了

2021-09-11 18:32:04 字數 1154 閱讀 5839

字串反轉應該是比較常碰見的問題,今天我們來練一練 多種演算法的效率如何

有遞迴法(不推薦)、陣列倒序拼接、冒泡對調、使用stringbuffer的reverse方法等。

//遞迴方法

public static string reverse1(string s)

string left = s.substring(0, length / 2);

string right = s.substring(length / 2, length);

return reverse1(right) + reverse1(left);

}

遞迴的時間複雜度太高了,而且會隨著字串的長度增加而增加,效率差。

//字串轉換成字元陣列倒序拼接

public static string reverse2(string s)

倒序拼接應該注意不用直接使用string拼接,應該使用stringbuilder,否則隨著字串的長度增加,兩者的效率會很明顯拉大。

//冒泡對調

public static string reverse3(string orig)

return new string(s);

}

氣泡排序法應該是很常見的演算法,永遠記得當初c++老師教的時候,說 三個等號 搞定哈哈哈哈

//呼叫stringbuffer中的reverse方法

public static string reverse4(string s)

這個方法是最簡單的,一行**搞定!

那麼這四種演算法 肯定有效率高低之分了,不然不同演算法也沒有意義了。

筆者使用 26位英文本元作為輸入,看下執行一遍的時間,不能說明哪種速度快

那麼執行百萬次呢?試試五百萬次

足以說明 遞迴真的速度慢,還屬冒泡的速度最快效率最高了。好啦,實驗結束哈哈哈哈不喜勿噴噢

幾種方法實現「反轉字串」

今天遇到一道題目是實現乙個反轉字串的函式,具體如下 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例...

C C 字串反轉的幾種方法

0.環境說明 windows7 vscode mingw32 1.使用 庫方法 reverse 功能 字串反轉 include include include using namespace std int main void 2.自己編寫 reverse 函式 include include us...

Python實現字串反轉的幾種方法

避開語言的特性來說 方法第一種 使用字串切片 result s 1 第二種 使用列表的reverse方法 l list s l.reverse result join l 第三種 使用reduce result reduce lambda x,y y x,s 第四種 使用遞迴函式 def func ...