【发布时间】:2020-10-18 20:51:12
【问题描述】:
我正在尝试使用插入排序对 (listof (listof Str Str)) 进行排序,但我不知道如何从这里开始。首先,它必须按字母顺序按第一个字符串排序,然后按字母顺序按第二个字符串排序。 例如:
(list (list "produce" "apple")
(list "seed" "rice")
(list "dairy" "milk" )
(list "seed" "pinto")
(list "produce" "potato")
(list "chips" "potato")
(list "seed" "wheat")
(list "produce" "banana")
(list "dairy" "cheese")
(list "chips" "banana")
(list "produce" "peach")
(list "seed" "lentil")
(list "produce" "corn")
(list "seed" "corn")) becomes
`(list (list "chips" "banana") (list "chips" "potato") (list "dairy" "cheese") (list "dairy" "kefir") (list "dairy" "milk")` (list "chips" "potato") (list "dairy" "cheese") (list "dairy" "kefir") (list "dairy" "milk") (list "produce" "apple") (list "produce" "banana" (list "produce" "corn")(list "produce" "peach")(list "produce" "potato")(list "seed" "corn")(list "seed" "lentil")(list "seed" "pinto"))
在我编写了按第一个字符串对列表的输入列表进行排序的代码后,我可以知道是什么方法吗?按第一个字符串排序后,列表如下所示:
(list ("chips" "potato") (list "chips" "banana") (list "dairy" "milk")(list "dairy" "cheese")(list "dairy" "kefir")(list "produce" "apple")(list "produce" "potato") (list "produce" "banana")(list "produce" "peach")(list "produce" "corn")(list "seed" "rice")(list "seed" "pinto")(list "seed" "wheat")(list "seed" "lentil")(list "seed" "corn"))
如何按第二个字符串对列表进行排序?非常感谢!
【问题讨论】:
-
我对 Racket 了解不多,但在许多语言中,通常的做法是交换第一个和第二个字符串,然后应用标准排序,然后再次交换两个字符串。
标签: sorting racket insertion-sort