Rust(ラスト)とはC/C++言語のように実行速度や実行効率に優れていながら安全なプログラムが作れることで人気のプログラミング言語です。最近では、Linuxカーネルの開発言語に加わるとのことで話題になっています。そんなRustで有名アルゴリズムを解くことで、Rustについて理解を深めましょう。
はてなアプリケーションエンジニアの id:shiba_yu36 です。 最近自分が基礎的でずっと廃れなさそうな分野であるアルゴリズムを少しずつ学びたいと考えていました。しかし、アルゴリズムはあまりにも基礎分野のため、モチベーションをずっと保ち続けられるかという不安もありました。そこで周りの人も巻き込むことでモチベーションを保ち続けたいと思い、社内で勉強会を開催したいと考えました。 勉強会の教材を選定していたところ、Courseraで「Algorithms, Part I」という非常に高評価な教材を見つけることが出来たので、最近はこの教材をみんなで集まって見ながら議論をするという体裁で社内勉強会を開催しています。実際にやってみると、社内勉強会という形式を取ったのも良く、さらにこの教材を利用したことも良かったと感じています。 少しずつ社内勉強会で講義を進めていき、ようやく半分のWeek3まで終
‐‐ ‐‐ Yin Jun‐Feng (Tongji University) 5 . 6 . 2008 House Open NII • • • • ⎩ ⎨ ⎧ = − = + ) 2 ( 2 3 ) 1 ( 5 3 2 L L y x y x ⎩ ⎨ ⎧ = − = + ) 2 ( 2 3 ) 1 ( 5 3 2 L L y x y x 1 , 1 ) 2 ( 2 3 ) 1 ( 5 3 2 = = ⎩ ⎨ ⎧ = − = + y x y x y x L L 1 , 1 ) 2 ( 2 3 ) 1 ( 5 3 2 = = ⎩ ⎨ ⎧ = − = + y x y x y x L L x y 5 3 2 = + y x 2 3 = − y x ) 1 , 1 ( 0 ⎪ ⎩ ⎪ ⎨ ⎧ = + − = − = + ) 3 ( 1 ) 2 ( 2 3 ) 1 ( 5 3 2 L L L y x
【概要】 21世紀を迎えてから、ロボット技術は我々の日常生活に浸透してきており、人間そっくりの案内ロボットが登場したり、癒し系のペットロボットやロボット工作キットが販売されていたりします。見た目や体つきはかなり発展したように見えますが、ロボット研究において大きな課題として残されているのが、いかにして「賢さ」を実現するか、という事です。一方で、脳科学の発展とともに、ロボットを人間のように賢くするためには人間の脳を見習わなければならない、という考え方も浸透して来るようになり、ロボット研究者と脳科学研究者が議論を交わす事も多くなってきました。 そのような背景から、本講座では、ロボットの頭脳がどのように実現されているか、また脳科学の観点からどのようにすれば人間のような考え方のできるロボットが実現できるのか、というトピックについて解説します。
[2025-10-31] Launch of the New Judge System [2025-10-19] Postponement of the New Judge System Launch [2025-10-17] Launch of the New Judge System [2025-10-03] Regarding Rule Changes in ABC, ARC and AGC Due to Technological Advancement of Generative AI [2025-06-16] Introduction of Generative AI Rules in AHC [2025-04-17] Regarding Judge Queue Delays and Future Measures [2025-03-19] Changes to the Rat
Introduction Tree structures support various basic dynamic set operations including Search, Predecessor, Successor, Minimum, Maximum, Insert, and Delete in time proportional to the height of the tree. Ideally, a tree will be balanced and the height will be log n where n is the number of nodes in the tree. To ensure that the height of the tree is as small as possible and therefore provide the best
B-Tree インデックス (B-Tree Index) オラクルのインデックス、すなわち、デフォルト時のインデックスは B-Tree インデックス(※1) になる。 B-Tree インデックスとはバランスド・ツリーインデックスの略である(1969 年頃に既に考案されている)。プログラミングを始めたときにソートアルゴリズムやデータ構造で勉強したであろうと思う二分木 (Binary-Tree) の進化版みたいなものである。 一部のブランチが異常に成長しないように平衡を保つように再編成(バランス)する仕組みによって、常にインデックスによる検索性能を高い状態に保つことができる(※2)。 RDBMS によっては色々な種類のインデックスが存在しているが、現在においても B-Tree インデックスが多くのケースで優れたパフォーマンスを出していることには変わりないようである。 (※1) B-Tree に
□ 多レベル索引の一種 挿入や削除のタイミングで動的な再編成が効率良く可能. レベル数は層レコード数 に対して ですむ. □ B-tree よりも後述の B-tree の方が良く使われるが,原理の 理解は B-tree の方が理解しやすいので,先に説明する. 以下ではキー値に重複がないものと仮定する. 定義 8 (B木 (B-tree)) が正整数であるとする.次の B木 (a B-tree of degree ) の 各ノードは次のような情報を持つページで,以下に述べる条件を満たすものである (図 6.5, p112 参照.): はroot ノード以外では である. root ノードでは である. レコード のキー値を で表すとすると, である. レコードは最大で 個まで持てる. はページへのポインタである. (つまり部分木へのポインタである.) 中に現れる全てのレコード
ext2とext3は、「ブロックアルゴリズム」を採用している。ブロックアルゴリズムとは、例えばディスクを4Kbytesなどの単位(ブロック)に分けて管理する方法である。ext2にジャーナリング機能を追加したものがext3である。ext2、ext3以外のファイルシステムで用いられているB-Treeとそのバリエーションは、バランス木(Balanced Tree)をベースとしたアルゴリズムである。 拡張機能としては、今回紹介する「動的iノード」と「エクステント」方式が挙げられる。「エクステント」は、ブロックアドレスの代わりに「論理セット」と呼ばれる「開始アドレス」「サイズ」「オフセット」を渡すことでアドレッシングを効率化する方式である。「動的iノード」はiノードを動的に付与する方法で、これまで存在していたiノード数の制約を解決するものとして期待されている。ReiserFSやJFS、XFSはこれら
B+木(英: B+ tree)は、キーを指定することで挿入・検索・削除が効率的に行える木構造の一種である。動的な階層型インデックスであり、各インデックスセグメント(「ブロック」などと呼ばれる。木構造におけるノードに相当)にはキー数の上限と下限がある。B+木はB木とは異なり、全てのレコードは木の最下層(葉ノード)に格納され、内部ノードにはキーのみが格納される。 B+木は、特にブロック型記憶装置での効率的データ検索に効果を発揮する。ブロックサイズ の記憶装置があるとき、 の倍数個のキーを格納するB+木は2分探索木に比較して非常に効率が良い(2分探索木はブロック型でない記憶装置に適している)。 ReiserFS(UNIX、Linux)、XFS(IRIX、Linux)、JFS2(AIX、OS/2、Linux)、HammerFS(DragonFly BSD)、NTFSといったファイルシステムはいずれ
B木(びーき、英:B-tree)は、計算機科学におけるデータ構造、特に木構造の一つ。ブロック単位のランダムアクセスが可能な補助記憶装置(ハードディスクドライブなど)上に木構造を実装するのに適した構造として知られる。 実システムでも多用されており、データベース管理システムの多くはB木による索引を実装している(B木の改良型または亜種であるB+木やB*木を使うことが多い)。 B木の例 多分岐の平衡木(バランス木)である。1 ノードから最大 m 個の枝が出るとき、これをオーダー m のB木という。後述する手順に従って操作すると、根と葉を除く「内部ノード」は最低でも m /2 の枝を持つことを保証できる[2]。 各ノードは、枝の数 - 1 のキーを持つ。枝1 ~ 枝m と キー1 ~ キーm -1 を持つとき、枝i には キーi -1 より大きく キーi より小さいキーだけを保持する(キーの重複を許
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く