美文网首页
7.3 堆排序

7.3 堆排序

作者: 你weixiao的时候很美 | 来源:发表于2018-11-21 23:09 被阅读8次
    1. 选择排序
     void Selection_Sort (ElementType [A], int N) {
          for (I = 0; I< N; I++) {
          MinPosition = ScanForMin (A,i,N-1); // 从a[I] 到a[n-1] 找出最小元,并将其位置赋值给MinPosition;
          Swap(A[I],A[MinPostion]); //将未排序的最小元 换到有序部分的最后位置。
        }
    }
    
    

    如何快速找到最小元问题:

    使用堆排序:
    算法1:

    void Heap_Sort (ElementType A[],int N) {
      BuildHeap(A);       //O(N)
      for (I = 0 ; I< N; I++) {
       TmpA[i]  = DeleteMin(A)   // O(logN)
      }     
      for (I = 0 ; I<N; I++) {
      A[I] = TmpA[i]; 
      }
    }
    

    // 总的时间复杂度 是T(N) = O(N logN)

    相关文章

      网友评论

          本文标题:7.3 堆排序

          本文链接:https://www.haomeiwen.com/subject/jynhqqtx.html