2017-02-17 5 views
1

こんにちは私はバブルソート機能を早期に完了しようとしています。 スワップの回数+関数vector.bubbleupが呼び出された回数を出力する必要があります。これは私がvector.bubblesortの出力がバブルソートヘルプ+キャプチャ変数にプリント

[1] 4 
[1] 2 
[1] 1 
[1] 1 
[1] 0 
[1] 11 36 44 47 66 88 

数字の全ての前になります値66 11 44​​ 88 47 36

とのベクトルを考えてみましょう私のコード

vector.swap <- function(vector,index1,index2){ 
    temp <- vector[index1] 
    vector[index1] <- vector[index2] 
    vector[index2] <- temp 
    return(vector) 
} 

vector.bubbleup <- function (vector) { 
    index_start <- 1 
    index_end <- length(vector) - 1 
    swap <- 0 
    for (index in index_start:index_end) { 
    if (vector[index] > vector[index+1]) { 
     vector <- vector.swap(vector,index,index+1) 
     swap <- swap + 1 
    } 
    } 
    print(swap) 
    return(vector) 
} 


vector.bubblesort <- function(vector){ 
    iteration <- length(vector)-1 
    while (iteration > 0){ 
    vector <- vector.bubbleup(vector) 
     iteration <- iteration - 1 
    } 
    return(vector) 
} 

ですベクトルはvector.bubbleupで使用されているプリント関数ですが、どのように記録するのですか?関数の使用回数をどのように数えますか?

ありがとうございました!

答えて

0

スワップ数とbubbleupコールの数を変数に格納できます。

nbSwaps <- 0 
nbCalls <- 0 

を関数の外に宣言し、関数を呼び出すたびに適切な金額を追加してください。 nbSwaps <- nbSwaps + swapnbCalls <- nbCalls + 1

+0

私は第2の機能のスワップを把握しておく必要があります。私は3番目の関数でそれらを追加する方法が必要です。 –

+0

変数を関数の外に宣言した場合は、必要な関数で変数を変更することができます。 – PinkFluffyUnicorn

+1

私はコードを稼働させました。私がしなければならなかったのは、そのスクリプト全体を1つの機能に変えることだけでした。 –

関連する問題