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

[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: qsort(0, count - 1);
009:
010: function qsort(r1, r2)
011: {
012: // 終了条件:ソート対象の要素が1つ
013: if (r1 >= r2) return;
014:
015: // 軸を適当に選ぶ(ここでは先頭)
016: var pivot = nums[r1];
017: var pos = r1;
018:
019: for (var c = r1 + 1; c <= r2; c++) {
020: // 軸を基準に分割しながら、軸が有るべき位置を見つける
021: if (nums[c] < pivot) {
022: pos++;
023: var x = nums[c];
024: nums[c] = nums[pos];
025: nums[pos] = x;
026: }
027: }
028:
029: var x = nums[r1];
030: nums[r1] = nums[pos];
031: nums[pos] = x;
032:
033: qsort(r1, pos - 1);
034: qsort(pos + 1, r2);
035: }


0
1
2
3
4
5


 ソートを試してみる
PR
Comments
Post a Comment
Name :
Title :
E-mail :
URL :
Comments :
Pass :   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
TrackBack URL
TrackBacks
Welcome ...

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

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