ソート単語

50件
ソート
1.0千文字の記事
  • 3
  • 0pt
掲示板へ

ソート英:sort)とは、種類、仕方、方法などを意味する英単である。

またコンピューターとしては、「情報の並べ替え」を行うこと。この記事ではこれについて解説する。

概要

プログラミングにおいて、ソートとはバラバラデータを規則正しく並べ替えること。コンピュータで扱う代表的な問題なので、効率化のためにいろいろなアルゴリズム開発されてきた。

並のプログラマーライブラリにソート処理を投げていることが多いため、自前で実装しろといわれると中々思い出せず、分厚い参考書を引っり出すハメになる物。

種類

ニコニコ大百科に記事があるソートアルゴリズム名は太字。)

その他多数。ソートの調べ物をするときに「安定ソート」とか「均計算量」とかに気をつけると楽しい。

バブルソート

ソートのアルゴリズムで必ず最初に習うもの。較回数、交換回数やたら多く、元の並び順によって較回数が変わるということもいので効率が悪い。

#include <stddef.h> /* size_t */ void bubble_sort(int *base, size_t nmemb) { size_t i; for (i = 0, nmemb--; i < nmemb; i++) { size_t j; for (j = nmemb; j > i; j--) { /* 後ろの方から始める */ if (base[j - 1] > base[j]) { /* 隣り合った要素を較し、前が大きければ交換。 */ int tmp; tmp = base[j - 1]; base[j - 1] = base[j]; base[j] = tmp; } /* これを繰り返して小さい物をどんどん前へ持って行く。 */ } /* この時点で一番前の要素が確定する。 */ } return; }

Rubyの配列のsortメソッド

このサイトを支えているRubyでソートをするときはこんな感じになる。

array = array.sort

簡単ですね。これからプログラムを学ぶ人はRubyに入信しなさい。

関連動画

キャラクターの表示順序のためにバケットソートを利用している。アルゴリズム解説付き。

ソート対の値を音の高低で表すことでソートの様子を視覚的・聴覚的に理解できる。

関連項目

(様々なソートアルゴリズムの記事については、「種類」の節を参照)

【スポンサーリンク】

  • 3
  • 0pt
記事編集 編集履歴を閲覧

ニコニ広告で宣伝された記事

鬼滅の刃 (単) 記事と一緒に動画もおすすめ!
提供: マリア
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

ソート

7 ななしのよっしん
2015/06/10(水) 03:04:38 ID: 4We22uEu77
何でボゴソートの記事があるんだよww
もっと先に作るべきものがあるだろ
👍
高評価
0
👎
低評価
0
8 ななしのよっしん
2015/06/17(水) 13:23:45 ID: dso+IPYfIe
総統も相当ソートがお好きで
👍
高評価
0
👎
低評価
0
9 ななしのよっしん
2015/06/17(水) 21:37:23 ID: hFnyHxmc7r
>>sm26445256exit_nicovideo
👍
高評価
0
👎
低評価
0
10 ななしのよっしん
2015/09/20(日) 18:13:31 ID: g/k4kueuPO
々々々…並列計算が可世界ではボゴソートが最速のソートになるという与太話

どう頑っても一段の処理→二段の処理→三段の処理のような
処理の階層構造になるクイックソートなどのアルゴリズム
ボゴソートは一切処理間に依存関係が発生しないため
一発で解答を出せてしまうという
👍
高評価
0
👎
低評価
0
11 ななしのよっしん
2016/01/05(火) 22:27:55 ID: SF2uKRxkrW
>>sm21994071exit_nicovideo
👍
高評価
0
👎
低評価
0
12 ななしのよっしん
2016/04/21(木) 19:18:15 ID: NOFPuNZfIJ
最近スリープソートというすごいソートを知った
1.それぞれの要素分の時間だけ、同時にsleepする
2.sleepから覚めた要素から順に取り出す
3.一番大きい要素が覚めたら終了
4.ね、簡単でしょう?
👍
高評価
0
👎
低評価
0
13 ななしのよっしん
2016/05/19(木) 18:26:59 ID: LmV6M2AKKg
ミラクルソート
1.要素が整列されているか確認する
2.整列されていれば終了、されていなければ最初に戻る

とか、
名無しソート
1.要素のありうるすべての並びをメモリ上に展開
2.整列しているものを見つける

なんてのがあるらしい。この手のものはいくらでもありそうだけど
👍
高評価
0
👎
低評価
0
14 ななしのよっしん
2017/08/07(月) 06:54:16 ID: C1Tp7yBAat
並列性が重要ならバイトニックソート+マージソートがなかなかいい
PRAM上でO(log^2n)だよ
ハイパーキューブでもバイトニックソートは速いよ

PRAMでもっと高速なアルゴリズムはO(logn)で動くよ
較交換に基づくアルゴリズムでは理論上最速だよ
👍
高評価
0
👎
低評価
0
15 ななしのよっしん
2019/05/15(水) 02:47:07 ID: o8iS3Nid6Z
日本語ソートは難しい。
同じ漢字に様々な読みがあるので、文字コードだけ見てもソートできない。
👍
高評価
0
👎
低評価
0
16 ななしのよっしん
2019/08/20(火) 11:08:55 ID: 4jDkzB1ATM
>>15
そういえばこの分野でよく辞書式順序って言うけど、日本語国語辞書がやっているある意味現実」の辞書式順序はなかなか複雑で、
全ての見出しから「清音に直したデータ」と「濁点・小文字等のデータ」を作って
「清音に直したデータ」だけ見て辞書式にソートして、それでも順序が決まらないときは「濁点・小文字等」がどうなっているか較するという二段構えになっている。
さらに表記欄の漢字表記まで見て何らかの順序を設けたり。大変だこりゃ
👍
高評価
0
👎
低評価
0