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
9295 次
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 に答える