忍者ブログ
2ヶ月弱で情報処理試験・ソフトウェア開発技術者に合格します。
★RSS 1.0  ★RSS 2.0
Posted at 2024.04.20,Sat
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted at 2007.10.05,Fri
さてさて、選択ソートです。

  001: var count = 10;
002: var nums = new Array(count);
003:
004: // 適当な数値で初期化 ( 重複OK )
005: if (var c = 0; c < count; c++) {
006: nums[c] = Math.floor((Math.random() * 100) % 100);
007: }
008:
009: for (var c = 0; c < count; c++) {
010: // 最小値を選択する
011: var min = c;
012: for (var n = c + 1; n < count; n++) {
013: if (nums[min] > nums[n]) {
014: min = n;
015: }
016: }
017: var x = nums[c];
018: nums[c] = nums[min];
019: nums[min] = x;
020: }


最小値を選択ってところがミソですね。
しかし、Cをはじめとして、新しい言語にも swap が存在しないのはなんで?

0
1
2
3
4
5


 ソートを試してみる
PR
Posted at 2007.10.04,Thu
午後対策?として、ソートアルゴリズムの実装にトライしていきます。

言語は都合により、JavaScript です。
ブログを書く環境 ( テキストエディタとブラウザ ) があれば、実装・デバッグできますしねぇ。楽ちんです♪

とりあえず、バブルソートから。

  001: var count = 10;
002: var nums = new Array(count);
003:
004: // 適当な数値で初期化 ( 重複OK )
005: if (var c = 0; c < count; c++) {
006: nums[c] = Math.floor((Math.random() * 100) % 100);
007: }
008:
009: for (var c = 0; c < count; c++) {
010: for (var n = 0; n < count - c - 1; n++) {
011: if (nums[n] > nums[n + 1]) {
012: var x = nums[n];
013: nums[n] = nums[n + 1];
014: nums[n + 1] = x;
015: }
016: }
017: }


まぁ、こんな感じでしょうか。
私の実装のクセが結構出てますね。逆方向のループは直感的じゃないので嫌い。

なので、降順にソートしたものを逆方向に並べることで昇順に並べてます。
混乱しないでね。

0
1
2
3
4
5


 ソートを試してみる
Welcome ...

 
Ad.
Profile
名前:たびと。
職業:元腐れプログラマ

Template by mavericyard*
忍者ブログ [PR]