算法基础
插入排序(排序纸牌)
INSERTONSORT(A) 从小到大
for j =2 to A.length
key=A[j]
//Insert A[j] into the sortedsequence A[1,j-1]
i=j-1;
while i>0 and A[i] >key
A[i+1]=A[i];
i=i-1;
A[i+1]=key;
循环不变式:
初始化:循环的第一次迭代之前,他为真
保持:如果循环的某次迭代之前他为真,那么下次迭代之前他仍为真
终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。
2.1-4算法:
adder(A,B)
array=0;
for i=0 to n
C[i]=(A[i]+B[i]+array)%2;
if(A[i]+B[i]+array>=2)
array=1
else
array=0
C[n+1]=array;
return C;
分析算法· ··
输入规模:
2.2-3
SelectionSorti(A)
for i=0 to A.length -1
min=i;
forj=i+1 to A.length -1
ifA[i]>A[j]
i=j
swap A[i] and A[min]
算法基础
插入排序(排序纸牌)
INSERTONSORT(A) 从小到大
for j =2 to A.length
key=A[j]
//Insert A[j] into the sortedsequence A[1,j-1]
i=j-1;
while i>0 and A[i] >key
A[i+1]=A[i];
i=i-1;
A[i+1]=key;
循环不变式:
初始化:循环的第一次迭代之前,他为真
保持:如果循环的某次迭代之前他为真,那么下次迭代之前他仍为真
终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。
2.1-4算法:
adder(A,B)
array=0;
for i=0 to n
C[i]=(A[i]+B[i]+array)%2;
if(A[i]+B[i]+array>=2)
array=1
else
array=0
C[n+1]=array;
return C;
分析算法· ··
输入规模:
2.2-3
SelectionSorti(A)
for i=0 to A.length -1
min=i;
forj=i+1 to A.length -1
ifA[i]>A[j]
i=j
swap A[i] and A[min]