2016-06-12 5 views
1

このアルゴリズムは安定しているのですか?私は安定の意味をチェックして、このサイトで何かを見つけました。私が正しく理解していれば、同じキーを持つ2つのものが同じ順序で入力に表示されるだけでなく、ソートされた出力でも何か(ソートアルゴリズムについて)は安定しています。次のアルゴリズムは安定していますか?

次のアルゴリズムはよく知られたバブルソルトです。 2つの等しい要素がそこに入れ替わっていることがわからないので、安定していると言えます。したがって、安定したアルゴリズムでなければなりません。 私は正しく、 "証明"のために十分ですか?

Input: Array arr with n integers 
Output: Array arr sorted upward 
repeat 
    swapped = false 
    for i = 1 to n-1 do 
     if arr[i] > arr[i+1] then 
     temp = arr[i] 
     arr[i] = arr[i+1] 
     arr[i+1] = temp 
     swapped = true 
     end if 
    end for 
until not swapped 

答えて

1

はい、それは安定です。 あなたが

if arr[i] >= arr[i+1] then 

でそれを実装する場合、あなたは安定性を失うだろう。

また、安定していること:同じキーを持つ2つのものが同じ順序で入力に表示され、ソートされた出力にも表示される場合を意味します。 key1でソートしてからkey2で並べ替えるときは、安定したソートアルゴリズムが必要です

関連する問題