You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
「Happy Elements Advent Calendar 2023」 12月17日の記事です。 はじめに はじめまして。私はHappy Elements株式会社 カカリアスタジオで新規タイトルを開発中のチームで働いている h_miki です。 本記事では、配列の拡張メソッドとして In-Place Merge Sort を実装し、実行速度やメモリ消費量を計測してみたいと思います。[1] なお、前提として Merge Sort についての基本的な知識はあるものとします。 実装にあたって In-Place Merge Sort の実装には、部分配列に対する操作が必要です。 部分配列の操作には、操作範囲の先頭と末尾のインデックスを管理する方法などもありますが、今回はわかりやすさ重視で Span<T> を活用しようと思います。 メソッドの実装は Span<T> に対しておこない、配列用のメソ
はじめに Rustで、入力の配列を半分にしながら再帰的にソートするMerge Sortを実装してみる。Rustは所有権や借用にうるさい言語なので実装できるか?という観点での練習。 シングルスレッドでの実装 fn _merge<T: Ord + Copy + Default> (left: &[T], right: &[T]) -> Vec::<T> { let (mut i, mut j, mut k) = (0, 0, 0); let mut work_vector: Vec<T> = vec![T::default(); left.len() + right.len()]; while i < left.len() && j < right.len() { if left[i] < right[j] { work_vector[k] = left[i]; i = i + 1; } el
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く