gpt4 book ai didi

prolog - Prolog语言中的冒泡排序

转载 作者:行者123 更新时间:2023-12-01 22:44:28 25 4
gpt4 key购买 nike

我必须实现冒泡排序函数(排序算法)。

我已经实现了bubblesortswapbubblesort的帮助函数:

swap([X,Y|T1],[Y,X|T1]):-(Y<X,!).
swap([X|T1],[X|T2]):- swap(T1,T2).

bubblesort([],[]) :- !.
bubblesort(T1,T2) :- (bubblesort(swap(T1,T2),T2)).

我得到一个无限循环。我必须保留函数的签名:

bubblesort(T1,T2)

我在这个问题上卡了 2 个小时。有谁知道我该怎么做?

最佳答案

直到交换过程没有变化,继续交换。如果交换没有变化,那么你已经排序了列表。

bubblesort ( List, SortedList) :-
swap ( List, List1 ), ! ,
bubblesort ( List1, SortedList) .
bubblesort ( List, List).

swap ( [ X, Y | Rest ], [ Y, X | Rest ] ) :-
X > Y, ! .
swap ( [ Z | Rest ], [ Z | Rest1 ] ) : -
swap (Rest, Rest1 ).

关于prolog - Prolog语言中的冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4753663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com