mergesort

    1

    1答えて

    マージソートのスワップをカウントしようとしています。それは非常に単純な命題のように思えましたが、私の論理に問題があるようです。ここで が、私は私のカウントをインクリメントしようとしている私のコードの関連部分です: unsortedArray = [2, 1, 3, 1, 2] sortedArray = [1, 1, 2, 2, 3] swapCount = 5 : while leftI

    1

    1答えて

    私はマージソートを書く方法を自分で教えようとしていますが、何らかの理由で私はそれを動作させるように見えません。 def merge(left, right): result = [] i ,j = 0, 0 while i < len(left) and j < len(right): if left[i] <= right[j]:

    0

    1答えて

    私はLayer.php class WebPierCom_OutOfStockLastAndMostViewed_Catalog_Model_Layer extends Mage_Catalog_Model_Layer { public function prepareProductCollection($collection) { parent::prepare

    0

    1答えて

    をスライスせずにマージソートが、私は、実行時の途中での問題に実行しているよ - 私は間違って私は「 を行くよどこ誰もが私を見ることができればと思いまして(コメントアウト)いくつかのprint文を追加しましので、あなたは前に起こっていただきました!見ることができ、各ステージの後: def mergesort(arr, l, r): #print('start: ', arr[l:r])

    1

    2答えて

    マージソートを実装しました。ソートも同様に元の配列のinversionsの数を計算したいと思います。 以下は、何らかの理由で逆転の回数を正しく計算できないという実装を試みたことです。 たとえば、mergeSort([4, 3, 2, 1])は、(6, [1, 2, 3, 4])を返す必要があります。 def mergeSort(alist): count = 0 if len(

    0

    1答えて

    長さNの配列をトップダウンマージソートで並べ替える理由は分かりませんが、6NlogNの配列アクセスだけが必要です。 各々は高々6Nアレイは、(コピーのため、2Nバック移動のため、最も2Nで比較のために2N)にアクセス を使用してマージ(これは合計で6NlgNですので、各レベルは、高さがLGNであり、6N必要) N個の要素を補助配列にコピーして元の配列にコピーするのではなく、2Nですか? 2N "戻

    0

    1答えて

    私は入力として数値をとり、並べ替えられた順序で並べ替えられていないリストから前後の数値を出力する関数を記述しようとしています。例えば、リストが[29,1,49,8]の場合、関数(8)を呼び出すと[1,29] を返す必要があります。最小の平均複雑度を持つ可能な解はソートを行うだけです。リストは無作為に100の固定サイズで生成されます

    0

    1答えて

    私はこのアルゴリズムがo(nlogn)の時間複雑さを持っていることを知っていますが、私たちがマージステップだけを話すならば、これは依然としてo(nlogn)ですか?または、それはo(logn)に還元されていますか? 2番目の答えは答えだと思いますが、まだ配列のすべての要素に触れなければならないので、複雑さは同じであると思われます 乾杯!

    2

    2答えて

    マージソートとクイックソートの両方について、私はそれらが最悪になるシナリオを考え出しています。私が正しければ、すべてがソートされるとソートの最悪のケースO(nlogn)をマージします。クイックソートの最悪のケースは、ピボットが最も最適でない場所にあり、配列がソートされているので、O(n^2)になります。私はこれが最初に正しいかどうか疑問に思っていたので、そうでなければ私を修正してください。 私の実

    1

    3答えて

    私は15,000のポインタを持っています。 私はそのようなループ内でのソートマージ置く理由はアルファベット順ではなく、配列内の文字列内の各インデックス内の文字を並べ替えることで、コード for (int x = 0; x < n;x++) { mergeSort(array[x],0,strlen(array[x]-1); } の小さなビットを持っています。 forループでマージ