我在一个问题上被屏蔽了。它从TableView移动行逻辑开始,所以我必须将它反映到我的模型中,然后在UserDefaults中保存行。
稍后,我将重用保存到UserDefaults中的索引,并希望使用此索引对数组进行重新排序。
基本上我试着这样做:
// in a commands.keys loop -> stack
// in a commands[stack]! loop -> command
guard let suggestedIndex = AllCommands.getCommandStackIndex(commandId: command.id) else { co
我的老师想让我做一个算法,以升序排序,但使用列表中的最小数字并将其放在开头。我读了一个数字文件,到目前为止,我得到了:
def findMin(ls, n):
m = 0
for i in range(1, n): #n is length
if ls[i]<ls[m]:
m = i
return m
def sortlist(ls,n):
if n == 1:
return
假设你有两个数组,a和b。a的数据对你是完全隐藏的。您可以在上执行的唯一操作是交换两个元素。B的数据是完全公开和可变的。
位置i处的b值指示存储在ai中的值的目的地。也就是说,如果b3 = 7,我们希望将a3中的值移动到a7中。我正在尝试写一个算法,它根据数组b中的信息,只使用a上的交换操作(最好是线性时间和常量空间)来改变数组a。举个例子:
if a = { a b c d e f }
and b = { 1 3 2 0 5 4 }
then a' = { d a c b f e }
(ie, a[i] = a'[b[i]])
我尝试了一种天真的方法,迭代通过b并愉
这是一个编码面试问题。我们得到一个数组,比如random_arr,我们需要使用只对交换函数进行排序。
此外,random_arr中每个元素的掉期数量也是有限的。为此,您将得到一个数组parent_arr,其中包含random_arr的每个元素的交换数量。
制约因素:
您应该使用交换函数。
每个元素至少重复5次,最多重复26次。
不能将给定数组的元素设置为0。
您不应该编写辅助函数。
现在,我将解释parent_arr是如何声明的。如果parent_arr是这样的:
parent_arr[] = {a,b,c,d,…,z}
a can be swapped at most
给出一个未排序元素的列表。初始条件为A=list的未排序元素、p=1、N=total数组大小。
Bubble(A,p,N)
if p>=N return
for i=p to N-1
if A[i]>A[i+1]
swap(A[i],A[i+1])
Bubble(A,p,N-1)
问题1:通过对N的归纳证明算法的正确性。我的问题:如何在气泡(A,p,N1)上使用k+1 ?我需要有人为我解释和证明。
问题2:证明如果一个元素一旦向n移动,对于当前和所有即将到来的递归调用,它永远不会向p移动。(未解)
我的问题是:在完成排序的第一个n-1循环之后,数组中最大的整数值将在