1

which data structure to use to sort n numbers in dr scheme i m not allowed to use vector and structure ..if i use list i cant edit the list values .so how can i sort n numbers . the language i use is textual mzscheme rsr5

4

3 に答える 3

7

リストの値を編集できない場合は...新しいリストを返してください! :-)

于 2009-10-09T06:39:18.243 に答える
3

挿入ソート ソリューションはスキームとしては非常に簡単です (N^2 の BigO ではパフォーマンスは劣りますが、それでも機能します)。

n 個の数値を並べ替えるには、list データ型を使用して値を保持できます。数値のリストは次のいずれかです。

  • 空の、

  • (cons 番号 ListofNumber)

挿入並べ替えには、2 つの関数と、既に並べ替えられた数値のリストに数値を 1 回挿入する Inserter と、この挿入を再帰的に呼び出す別の関数が必要です。

挿入関数の入出力

;;insert: Number ListOfNumber(Sorted) -> ListOfNumber(Sorted)
(define (insert n lon)
    (cond
        [(empty? lon) (cons n lon)] 
        [(<= n (first lon)) (cons n lon)] 
        (else 
            (cons (first lon) (insert n (rest lon))) )))


;;insertion-sort: ListOfNumber -> ListOfNumber(Sorted)
(define (insertion-sort lon)
    (cond
        [(empty? lon) lon] ;;if the list is empty than the numbers are sorted
        (else
            (insert (first lon) (insertion-sort (rest lon))) )))

この答えがあなたの質問に合っていることを願っています

于 2011-04-06T09:28:59.793 に答える
0

宿題のために独自のバブルソートを作成することになっているかどうかはわかりませんが、それ以外の場合は次のように組み込まれています。

(並べ替え (リスト 1 2 4 3) <) (1 2 3 4)

于 2009-10-09T07:11:55.313 に答える