• 締切済み

MSFlexGridのSortメソッドについて

VBの勉強をしております。(WindowsXP、VB6.0) MSFlexGridのSortは、内部的にはどの種類のソートなのでしょうか? ご存知の方がおられたら教えていただけますでしょうか? 課題で、「実行速度の効率を重視する」という項目があるのですが、 自作でクイックソートした方が良いのかどうか悩んでいます。 サンプルデータを作成して計測すればどちらが早いか分かるかもしれないですが、ソートの種類だけでもご存知の方がおられたら教えていただきたく質問させていただきました。 以上、よろしくお願いいたします。

  • ya-cha
  • お礼率68% (184/268)

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

たぶんクィックソートで実装されているのではないかと思います # 確証はありません Sortプロパティに1-8の規定値で設定することによるソートより自前でソートした方がはるかに遅いでしょう というのも 9のカスタムを選択した場合は『10倍遅くなる』とドキュメントに記載がありまあす また データの取得 > ソート > データの書き戻し といった手順が内部処理より速いとは思えません 規定のソートはソートの対象が1列のみですからこれが仕様に反している場合は自前でソート または 9のカスタムのどちらかの選択になりそうですが …

ya-cha
質問者

お礼

ご回答ありがとうございますm(__)m やはりそう考えられますよね。 >規定のソートはソートの対象が1列のみですからこれが仕様に反している場合は自前でソート または 9のカスタムのどちらかの選択になりそうですが … はい、ソートの基準とする列は1つだけなので大丈夫です(^o^) ありがとうございましたm(__)m

関連するQ&A

  • MSFlexGrid, DataGridでヘッダー編集

    MSFlexGrid, DataGridでヘッダーを次のように作りたいとですが、出来るのでしょうか。 | 科目 | | 国語 | 英語  | 数学  | 1 | 50 | 40 | 50 | 40 | 50 | 40 | 2 | 50 | 40 | 50 | 40 | 50 | 40 | 3 | 50 | 40 | 50 | 40 | 50 | 40 | こんな感じでしたいですが、出来るのでしょうか。 VB6もしくはVB.NETで作りたいですがご存知の方教えてください。ソースコードとか参考になるHPなどお願いします。

  • MSFlexGrid 行選択状態

    現在VBを勉強しております。(WindowsXP、VB6.0) http://oshiete1.goo.ne.jp/qa996239.html ↑の質問と同じ内容で悩んでいるんですが、回答を見ても理解出来ず、解決出来ていません(>_<) 1.処理起動時に、テキストファイルからデータを読み込み、グリッドへ表示した後。 2.ソートした後。 3.「検索」処理にてデータを絞り込んで表示した後。 以上3点の時に、行選択状態でなくなってしまうので、それを修正したいんですが、方法が分かりません(;_:) 現在は、グリッドのフォーカスイベントに MSFlexGrid1.SelectionMode = flexSelectionByRow を設定しているだけです。 以上、よろしくお願いいたしますm(__)m

  • java ソート

    java ソート ソートプログラムを作ってみましょう ? double型の配列とメソッドを持つクラスを定義 ? コンストラクタで配列を初期化(0.0で初期化) ?配列を昇順,降順に並び替えるメソッドを持つこと ? 2種類のメソッドを持っても良い ? 引数の値で変えても良い ? ソート済み配列をチェックするメソッドを持つこと ? 1000000要素程度のソーティングで時間計測 課題です 全く手が出せず困ってます・・・。 ヒント、手順、解答 なんでも良いので、救いの手をお願いします!!

  • MSFlexGridとDataGridの違いについて

    VBの勉強をしております。 WindowsXP、VB6.0です。 標記の件について質問させてください。 MSFlexGridは、グリッドの結合や色を付けたりするのに適している。 DataGridはエクセルのように、直接グリッド内を編集できるが、結合は無理で、色付けの設定はグリッド単位では指定できない。 2つのグリッドのどちらを使えば良いのか分からず、自分で調べてみた所、以上のような違いがあるのでは、という所までは分かりました。 行いたい処理は、 ・ファイルからデータを取り出し、グリッドへ表示。データの追加、修正、削除を行い、ファイルへ保存する。 機能として、検索とソートを行える。 また、データをクリックした際に、セルではなく、行全体の色を変更し、「行が選択されている」という見た目にしたい。 以上のような考えがあるのですが、実装が簡単なのはどちらのグリッドなのでしょうか? また、他に上記のような処理が可能なコントロールがあれば教えていただけないでしょうか? 以上、初心者なもので、文章が理解しづらいかもしれないですが、よろしくお願いいたします。

  • アルゴリズムの問題なのですが、マージソートとクイックソートについて教え

    アルゴリズムの問題なのですが、マージソートとクイックソートについて教えてください。 数列の(21 99 38 22 15 6)をマージソートで並び変えて、クイックソートでも並び変えたいのです。 マージソートで並び変えた手順は (21 99 38 22 15 6) (下矢印) (21 99 38)(22 15 6) (下矢印) (21 99)(38)(22 15)(6) (下矢印) (21)(99)(38)(22)(15)(6) (下矢印) (21 99)(38)(15 22)(6) (下矢印) (21 38 99)(6 15 22) (下矢印) (6 15 21 22 38 99) となりました。 この時、分割回数と統合回数がともに5なのですが、どう見たら5回なのでしょうか。 分割回数は3で統合回数も3ではないのでしょうか? クイックソートの方なのですが、 回答は (21 99 38 22 15 6) (下矢印) (15 6)(21)(99 38 22) (下矢印) (6)(15)(21)(22 38)(99) (15と38にした場合) (下矢印) (6)(15)(21)(22)(38)(99) となっていて、 最も効率のよいピボットを選択した場合分割回数は3となっています。 私がやってみたところ (21 99 38 22 15 6) (下矢印) (15 6)(21)(99 38 22) (下矢印) (6)(15)(21)(22)(38)(99)  (15と38を選んだ) これではいけないのでしょうか。 長くなりましたが、よろしくお願いします。

  • VB6.0 MSFlexGridのMouseRowプロパティについて

    研修中の新人です。 テキストファイルからランダムアクセスをしMSFlexGridに表示させる課題を作成しています。 MSFlexGridに表示させた行の更新、削除について考えています。 MouseRowプロパティで得られる行の番号というのはMSFlexGridに表示させている行の番号でしょうか。 それとも検索で得られた行全体の中の番号でしょうか。 例えば検索で50件得られMSFlexGridに表示したとします。 MSFlexGridは10件ずつしか表示しないとします。 41件目から50件目をスクロールして表示させ50件目をクリックしたとき、 MouseRowは"10"を返すのでしょうか。それとも"50"を返すのですか。 もし、"10"をかえしてしまうのなら列幅を0にしてファイルの行番数を格納しておくような列をつくります。(行番号は表示させてはいけない) そうではなく、"50"を返すなら配列に検索一致したファイルの行番数を格納しておく方法でコードを書こうと思います。 ご存知の方お願いします。

  • ソート処理について

    毎回お世話になっています。課題でソート処理が出題されたのですが、フローチャートすら書けない状況なので、どなたか力を貸していただけないでしょうか? 【処理概要】 個人成績表からレコードを取得し、取得したレコードを点数の高い順にソートし、順位・氏名・点数を個人成績表に出力する といったものです。 個人成績表は、氏名と点数の2項目で、レコード数は自由です。 とりあえず、私は10レコード作ったのですが、いろいろな個人成績表に対応できるように「レコード数は不明」の前提で、コーディんグするようにとのことです。 個人成績順意表は、「順位・氏名・点数」の順に出力とあり、 ソートの考え方として、【レコードを配列に取り込む→レコードを取り込む際に件数をカウントし、件数をn件とする】 とありました。 VBは全くの素人で、ソートに種類があることすら知らず、使い分けも知りませんでした。 どなたか力を貸していただけないでしょうか? 【自作個人成績表】 青木        076 井上        081 江藤        066 柏原        092 小林        087 斉藤        059 佐久間       076 関根        088 塚田        096 富田        083 となっています。 よろしくお願いいたします。

  • EXCEL VBAでクイックソート

    学生の頃に学んだクイックソート。 学生の当時もあまり理解していた記憶は無いのですが、 最近ふと思い出して、いろんなサイトを見ながら ExcelVBAを使用してクイックソートが出来るよう ぺかぺかとプログラミングしていたわけですが・・・・ さっぱり理解が出来ません。 ・・・で、初心者でもよくわかるようなサイトとかが ありましたら教えてください。 もちろんここでわかりやすく教えていただいてもけっこうなのですが すごい長文になってしまいますよね? 私的にはいっこうにかまわないのですが、それはそれで 大変だと思いますので。 ご存知の方、よろしくお願いします。

  • msflexgridのソートについて

    ソートの設定で、customを設定すると、compareイベントによりカスタマイズが可能となっていたのですが、使用方法がわかりません。 どなたか教えてください

  • 複数キーを利用したソートの仕方に関して(VB6.0)

    普段はROMばかりですがお世話になっております。 この度CSVファイル(カラム10個、レコード10000件程度)を内部データとして 読み込み複数キーを利用したソートをするプログラムの開発を VB6.0にて行う事になったのですがどうもうまくいかないのです。 いままではOracleを利用していて複数キーのソートなどSQLで 行っていたのでいざプログラムでやれと言われてもさっぱり 分かりません。。。 VBもまだ3日目で関数を探すので精一杯です。(愚痴ってごめんなさい) 今現在はADOを利用した開発を考えています。 mCn.ConnectionStringの設定は Provider=MSDASQL.1 Extended Properties="" DRIVER={Microsoft Text Driver (*.txt; *.csv)}; としています。 この状態ではCSVのインポートまではうまくいくのですがSortを命令すると 「実行時エラー3251:現在のプロバイダは並べ替え、またはフィルタリングに必要な インターフェースをサポートしていません」 とエラーが表示されてしまいます。 逆引きなど参考書等でテキストファイルを読み込む際にはMSDASQL.1を利用していた為、そのまま利用していたのが悪かったのでしょうか? どなたか複数キーを利用したソートの方法をご存知でしたら是非お教えいただきたくよろしくお願いいたします。 不備・不明点等ありましたらレスでお願いいたします。 失礼いたします。

専門家に質問してみよう