[過去ログ] Rust part21 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
439(1): デフォルトの名無しさん [sage] 2023/10/07(土) 23:59:36.96 ID:QajUcOD9(2/2) AAS
>>430430(6): デフォルトの名無しさん [sage] 2023/10/07(土) 06:46:44.80 ID:bWLG2vp7(1) AAS
mut無しとはこういうことか
外部リンク:play.rust-lang.org
fn qsort<T: Copy+Ord>(list: &[T]) -> Vec<T> {
match list {
[pivot, ..] => {
let (smaller, rest): (Vec<T Vec<T>) =
list[1..].iter().partition(|&i| i < pivot);
[qsort(&smaller), vec![*pivot], qsort(&rest)].concat()
},
_ => vec![]
}
}
fn main() {
let list = [9, 0, 7, 3, 6, 1, 2, 4, 8, 5];
println!("{:?}", list);
println!("{:?}", qsort(&list));
}
RustはそのようにOCamlやScalaと同等に書くことも容易な点がいいな
同時にその方法によりRustで記述すると大量にVec(またはリストを実現する何か)を使い捨てていることが見える
つまりGC言語ではガベージが大量に出る
457(1): デフォルトの名無しさん [sage] 2023/10/08(日) 20:19:50.77 ID:QzGY7mJQ(1) AAS
>>454454(1): デフォルトの名無しさん [sage] 2023/10/08(日) 19:36:48.46 ID:e3limdE9(1/2) AAS
>>449
目的はソートなので、
単方向リストを用いるかベクタを用いるかは実装方法の問題だから些細な話かな。
実用上もベクタで十分だから単方向リストの出番は滅多にないよね。
>>439がガベージがどうこう言ってるのについてはどう思う?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.343s*