初めまして、VB6.0を最近始めたものです。
今、VB6で数字をヒープソートで降順にソートしたいのですが、うまくいきません。Webで探しましたが見つかりませんでした。どのようにしたらうまくいくかお教え下さい。宜しくお願いします。
>今、VB6で数字をヒープソートで降順にソートしたいのですが、うまくいきません。
どううまくいかないのでしょうか?
>Webで探しましたが見つかりませんでした。
探さないから見つからないのでしょう。探せばいくらでも見つかります。
http://tinyurl.com/dtxus
その内のひとつ http://www.bcap.co.jp/hanafusa/VBHLP/fil_Sort.htm
>どのようにしたらうまくいくかお教え下さい。
うまくいかない部分をうまくいくように修正すればうまくいきます。
貴方が質問する時に 5W1H 入れるようにして質問しないとこのような
答えしか書けない(何がうまくいかなくて、それのどこが解らないのか
誰も解らない)でしょう。
気のせいかな?
http://tinyurl.com/bql64
花ちゃんさんとかぶった。
>ヒープソートのサンプルが、Webで無いわけがない!
>常識で考えましょう!
っていうか、今まで希望のものを探せたことありますか?
花ちゃんさん、いなさんこんにちは。
>貴方が質問する時に 5W1H 入れるようにして質問しないとこのような答えしか書けない(何がうまくいかなくて、それのどこが解らないのか誰も解らない)でしょう。
ソースコード書くのを忘れてました。
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Dim temp As Integer
j = 6
For i = 0 To 6
temp = List2.List(i)
List2.List(i) = List2.List(j)
List2.List(j) = temp
Call Heap(1, j - 1)
j = j - 1
Next
End Sub
Private Sub Heap(a, c As Integer)
Dim b As Integer
Dim temp As Integer
b = 2 * a
If c >= b Then
If (List1.List(b) < List1.List(b + 1)) And (c > b + 1) Then
b = b + 1
End If
If List1.List(a) < List1.List(b) Then
temp = List2.List(a)
List2.List(a) = List2.List(b)
List2.List(b) = temp
Call Heap(b, c)
End If
End If
End Sub
変換ボタンを押しても永遠にソートしてくれません。(数字は動くのですが・・・)
どうしたら出来ますか?宜しくお願いします。
先に提示したリンク先のコードはご覧になられなかったのですか?
http://www.bcap.co.jp/hanafusa/VBHLP/fil_Sort.htm
上記を試してから質問するようにして下さい。
貴方が投稿されたコードは、誰が書いたものですか?
ご自分で書いた物なら、求めている値が各変数に入っているか
ご自分で調べて下さい。
他人が書かれたコードなら無断でペーストされたりすると・・・・。
内容とはまったく無縁で申し訳ないのだが
>>j = 6
>>For i = 0 To 6
>> temp = List2.List(i)
>> List2.List(i) = List2.List(j)
>> List2.List(j) = temp
>> Call Heap(1, j - 1)
>> j = j - 1
>>Next
気のせいか、jという変数がムダな気がするが・・・このような組み方が一般的なのだろうか
自分ならjの部分は6-iにするけどなぁ
ツイート | ![]() |