Rubyのプログラムにおける計算量を求めたいのです。
https://qiita.com/cotrpepe/items/1f4c38cc9d3e3a5f5e9c
このページを見ると、
計算量を論理的に求められると書いてあるので、以下の通りにしました。(言語はRuby)
ユーザー入力を回文かどうか判定するプログラムです。
ruby
1#ユーザー入力 2puts "回文か判定しますので、文字を入力してください" 3answer=gets.chomp 4#クラス定義、回文判定メソッド定義、処理時間計測開始 5class Word 6 def checkPalindrome(word) 7 word = word.to_s 8 size = word.length / 2 9 return ( word[0..size] == word.reverse[0..size] ) 10 end 11end 12if Word.new.checkPalindrome(answer) 13 puts "それは回文です" 14else 15 puts "それは回文ではありません" 16end 17 18
** 私は以下の通り考えました。**
n=ユーザー入力の文字数
とすると、
比較する文字数は
n/2
となります。(8文字だったら、前からの4文字と後ろからの4文字を順番に比べていく為。)
つまり、計算量(文字を比較する回数)は
O(n/2)
となり、係数は無視されるので、計算量は
O(n)
となります。
間違っていたらご教示ください。
以前は私の理解不足だけでなく、丸投げな回答をしてしまい、申し訳ございませんでした。
回答1件
あなたの回答
tips
プレビュー