2012-05-03 8 views
0

私はリンクされたリストを持っており、私はそれがほぼ並べ替えられているかランダムであるかをチェックしたいですか?誰もそれを行う方法を提案することはできますか?ソートリンクリスト:ランダムまたはほぼソートされていますか?

今私がしようとしているのは、リストの半分まで実行し、隣接する要素を比較して、指定されたリストがほぼソートされているかどうかをチェックします。しかし、難しいのは、この方法は完全な証拠ではなく、何か具体的なものがほしいということです。

+1

あなたはどの言語を使用していますか? – Arion

+0

あなたは「ほとんどソートされた」という意味を定義していません。 –

+0

はほぼソートされているため、ソートする要素が多くありません。ほとんどの要素が正しい位置にあります。 – piyush0945

答えて

0

たとえば、アイテムが100の場合、スケールは100から外れます。(リストのソートのスコア)すべてのリストがソートされている場合、スコアは100です。リストが後ろにソートすると、スコアは0になります。隣り合うものをそれぞれチェックして、ペアがソートされているかどうか(0番目と1番目、1番目と2番目、2番目と3番目など)を決定します。したがって、0〜100のスケール(またはあなたのケースのリンクされたリストのサイズ)を持つことになります。 「並べ替え尺度」には多くのヒューリスティックがありますが、これは1つかもしれません。あなたが行うことができ、あなたのデータの振幅(のpython3)を関与させる場合

0

:あなたがいうだけでソートされているどのように多くの値を見たい場合は

import random  
l = [random.random() for x in range(100)] 
s = 0 
for i,x in enumerate(l[0:50]): 
    s += l[i+1] - x 
print(s) 

s+=ラインを置き換えます
s += 1 if l[i+1] > x else 0 
関連する問題