1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   掲示板ランキング



掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5669

バブルソートについて
投稿者---Mika(2006/05/02 10:37:12)


下記のプログラム部分においてj = -1の所の意味が解りません。なぜjに-1を代入するのかといったことですが・・・宜しくご教示の程お願いします。
<pre>/*--- 配列dataの先頭n個の要素を昇順にソート ---*/
voId sort(int data[], int n)
{
int k = n - 1;
while (k &gt;= 0){
int i, j;
for (i = 1, j = -1; i &lt;= k; i++)
if (data[i - 1] &gt; data[i]) {
j = i - 1;
swap(&amp;data[i], &amp;data[j]);
}
k = j;
}
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:バブルソートについて 5670 RAPT 2006/05/02 11:29:26
<子記事> Re:バブルソートについて 5671 kz3 2006/05/02 11:31:55


No.5670

Re:バブルソートについて
投稿者---RAPT(2006/05/02 11:29:26)


読みにくい。
投稿前に字下げとHTML化が正しいかなぜチェックしない?
# しかも、voId とかなってるし・・・

以下、誤字修正・字下げ対応したもの:

void sort(int data[], int n)
{
    int k = n - 1;
    while (k >= 0){
        int i, j;
        for (i = 1, j = -1; i <= k; i++)
        if (data[i - 1] > data[i]) {
            j = i - 1;
            swap(&data[i], &data[j]);
        }
        k = j;
    }
}


で、本題。n == 1 のとき、ループを抜けるためと思われる。
でも、それなら、一番最初に
if( n < 2 ){
    return;
}
とかしとけば良いようなものだけど。



この投稿にコメントする

削除パスワード

No.5671

Re:バブルソートについて
投稿者---kz3(2006/05/02 11:31:55)


><pre>/*--- 配列dataの先頭n個の要素を昇順にソート ---*/
>voId sort(int data[], int n)
>{
>    int  k = n - 1;
>    while (k >= 0){
>        int  i, j;
>        for (i = 1, j = -1; i <= k; i++)
>            if (data[i - 1] > data[i]) {
>                j = i - 1;
>                swap(&data[i], &data[j]);
>            }
>        k = j;
>     }
>}

投稿に失敗しているのに気づいていませんか?

j がどういう時にどういう値になり、
k が j の値によって、どんな影響を受けるのかを、
一つ一つ読んでみれば分かると思いますよ。

その前にバブルソートの考え方は分かっていますよね?

アルゴリズムを読み解くヒント:
・sort()は外側のループと内側のループで出来ている。
・外側のループは k によってコントロールされている。
・内側のループは必要ならば ii-1 の要素を入れ替える。
 ( swap()が要素を入れ替える関数だと前提 )

ヒントというかコードをそのまま日本語にしただけですね。





この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ