我的算法之路2_分析算法

来源:互联网 发布:那个软件看电影免费 编辑:程序博客网 时间:2024/06/07 00:05

算法基础

插入排序(排序纸牌)

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]

原创粉丝点击