タグ付けされた質問 「sorting」

並べ替えは、アイテムのコレクションに何らかの順序を適用するプロセスです。

5
カスタム比較述語を使用したheapq
カスタムソート述語を使用してヒープを構築しようとしています。そこに入る値は「ユーザー定義」タイプであるため、組み込みの比較述語を変更することはできません。 次のようなことを行う方法はありますか? h = heapq.heapify([...], key=my_lt_pred) h = heapq.heappush(h, key=my_lt_pred) または、さらに良いことに、heapq関数を自分のコンテナーでラップして、述語を渡し続ける必要がないようにすることもできます。


7
Scalaで配列をソートするにはどうすればよいですか?
クイックソートメソッドがSorting付いた並べ替えオブジェクトがあります。quickSort それを使用して、任意のタイプのオブジェクトの配列をソートするコード例は何でしょうか?Orderableトレイトの実装を渡す必要があるようですが、構文がわかりません。 また、私はこれを「スカラの方法」で行う答えを好みます。私はJavaライブラリを使用できることを知っています。
81 sorting  scala 

10
現在選択されているアイテムを保持しながら、HTML選択のオプションを値で並べ替える最も効率的な方法は何ですか?
jQueryを使用していますが、ソートヘルパーが組み込まれているかどうかはわかりません。私は、各項目のの2次元配列にすることができtext、valueおよびselectedプロパティを、私はに建てられたJavaScriptのはないと思いますArray.sort()正常に動作します。

11
LINQを使用して、アイテムをリストの一番上に移動します
LINQを使用して、たとえばid = 10のアイテムをリストの最初のアイテムとして移動する方法はありますか? アイテムA-id = 5 アイテムB-id = 10 アイテムC-id = 12 アイテムD-id = 1 この場合、どうすればアイテムCをList<T>コレクションの一番上にエレガントに移動できますか? これは私が今持っている最高のものです: var allCountries = repository.GetCountries(); var topitem = allCountries.Single(x => x.id == 592); var finalList = new List<Country>(); finalList.Add(topitem); finalList = finalList.Concat(allCountries.Where(x=> x.id != 592)).ToList();
81 c#  linq  sorting 

21
MySQLの自然順
MySQLデータベースでパフォーマンスの高い自然な並べ替えを行うためのエレガントな方法はありますか? たとえば、このデータセットがある場合: ファイナルファンタジー ファイナルファンタジー4 ファイナルファンタジー10 ファイナルファンタジー12 ファイナルファンタジー12:プロマティアの連鎖 ファイナルファンタジーアドベンチャー ファイナルファンタジーオリジン ファイナルファンタジータクティクス ゲームの名前をコンポーネントに分割する以外のエレガントなソリューション タイトル:「ファイナルファンタジー」 番号:「12」 字幕:「プロマティアの鎖」 それらが正しい順序で出てくることを確認するには?(2の前ではなく4の後の10)。 ゲームタイトルを解析するメカニズムを壊す別のゲームが時々あるので、そうすることはa **の苦痛です(例えば、「ウォーハンマー40,000」、「ジェームズボンド007」)

8
数値を降順で並べ替えますが、先頭は「0」です
私はJavaScriptの課題を抱えていますが、しばらくの間、もう少し理解しようとしています。 この配列を考えてみましょう: let arr = [0, 1, 0, 2, 0, 3, 0, 4, 0, 5]; この結果を出力する必要があります: arr = [0, 0, 0, 0, 0, 5, 4, 3, 2, 1] 次のロジック行に従って、ゼロを前に配置し、インデックス値を調整します。 arr.sort((x, y) => { if (x !== 0) { return 1; } if (x === 0) { return -1; } return …

3
2つの範囲内でベクトルを降順に並べ替える
整数のベクトルがあるとしましょう: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); 次に、降順に並べ替えます。 sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); これにより、以下が生成されます。 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ここで、数字3、4、5、6を最後に移動し、それらの降順を維持したいとします(できればsort2回目に使用する必要はありません)。つまり、ここに私が欲しいものがあります: 14 13 12 11 10 …

3
アイテムをスタック内の位置に移動するための最小移動数を見つける方法は?
Nがスタックの数、Pがスタックの容量であるNXPスタックのセットが与えられた場合、ロケーションAのノードから任意のロケーションBに移動するために必要なスワップの最小数を計算するにはどうすればよいですか?私はゲームを設計しています。最終的な目標は、すべてのスタックをすべて同じ色になるように並べ替えることです。 # Let "-" represent blank spaces, and assume the stacks are stacks = [ ['R', 'R', 'R', 'R'], ['Y', 'Y', 'Y', 'Y'], ['G', 'G', 'G', 'G'], ['-', '-', '-', 'B'], ['-', 'B', 'B', 'B'] ] stacks[1][1]そんな時に「B」を挿入したい場合stacks[1] = ["-", "B", "Y", "Y"]。そのために必要な移動の最小数を決定するにはどうすればよいですか? 私は複数のアプローチを見てきました。ある状態から可能なすべての動きを生成し、それらにスコアを付け、次に最良のスコアリングパスを継続する遺伝的アルゴリズムを試しました。また、問題をパスファインディングするためにDjikstraのアルゴリズムを実行しようとしました。イライラするほどシンプルに見えますが、指数時間以外で実行する方法を理解できません。ここで適用できる欠落しているアルゴリズムはありますか? 編集する 必要な移動の最小数を計算するためにこの関数を書きました:スタック:スタック内のピースを表すキャラクターのリストのリスト、スタック[0] [0]はスタックのトップです[0]スタック_インデックス:インデックスピースを追加するスタックneeds_piece:スタックに追加するピースneeds_index:ピースを配置するインデックス def calculate_min_moves(stacks, stack_ind, needs_piece, …

3
Aがaの前に、Bがbの前にくるカスタムソート
私はこのような色のリストを持っています: ピンク、ブルー、レッド、ブルー、グレー、グリーン、パープル、ブラック... etc List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); いくつかの果物の色をフィルタリングするようないくつかの中間的な操作があります。今、私はそれらを順番にソートしたいフィルタリングされた結果を残しています: ブルー、ブラック、ブルー、グレー、グリーン、ピンク、パープル、レッド 私が試してみました : List<String> collect = listOfColors.stream().sorted(String::compareToIgnoreCase) .collect(Collectors.toList()); 期待どおりに動作しません。 出力は次のとおりです。 ブラック、ブルー、ブルー、グリーン、グレー、ピンク、パープル、レッド 私は以下が欲しい: ブルー、ブラック、ブルー、グレー、グリーン、ピンク、パープル、レッド

2
Excel / SharedStringsのソートアルゴリズム
Excelでは、数値マッピングに文字列を「圧縮」します(この場合、圧縮という単語が正しいかどうかはわかりません)。以下に例を示します。 これは全体的なファイルサイズとメモリフットプリントを削減するのに役立ちますが、Excelは文字列フィールドでどのように並べ替えを行うのですか?すべての単一の文字列はルックアップマッピングを通過する必要がありますか。そうであれば、文字列フィールドでのソートのコストが大幅に増加したり、速度が低下したりすることはありません(1Mの値があった場合、1Mのキールックアップは行われません)。ささいな)。これに関する2つの質問: 共有文字列はExcelアプリケーション自体の中で使用されていますか、それともデータを保存するときだけですか? では、フィールドで並べ替えるアルゴリズムの例は何でしょうか?どの言語でも問題ありません(c、c#、c ++、python)。

3
Rで文字列の文字を効率的に並べ替える方法
ベクター内の各文字列の文字を効率的に並べ替えるにはどうすればよいですか?たとえば、文字列のベクトルが与えられた場合: set.seed(1) strings <- c(do.call(paste0, replicate(4, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(3, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(2, sample(LETTERS, 10000, TRUE), FALSE))) 各文字列をベクトルに分割し、ベクトルを並べ替えて、出力を折りたたむ関数を作成しました。 sort_cat <- function(strings){ tmp <- strsplit(strings, split="") tmp <- lapply(tmp, sort) tmp <- lapply(tmp, paste0, collapse = "") tmp <- unlist(tmp) return(tmp) } sorted_strings <- sort_cat(strings) ただし、これを適用する必要がある文字列のベクトルは非常に長く、この関数は遅すぎます。パフォーマンスを改善する方法について何か提案はありますか?

2
C ++で負の数と正の数の両方を含む文字列の配列を並べ替える方法は?
String str[]={"-123","89","-10","456"}; str文字列の配列であり、各文字列は整数の形式であり、この配列に対してO(n log n)時間内にソートを実行する必要があります。 の文字列はstr、正と負の両方の整数を表すことができます。これらの文字列の最大長は1024文字です。 この問題の1つの解決策は、文字列を数値に変換し、これとは別に比較することです。この問題の他の解決策はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.