<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      讀書筆記 算法導(dǎo)論 堆排序

      感覺自己算法不給力額...對基本概念和基本操作都不夠熟悉

      準備吧整個算法導(dǎo)論過一遍...把大部分常用的東西自己寫一遍

      做it真是辛苦啊...

      先弄個常用的堆吧

      堆可以用作堆排序,優(yōu)先隊列等等情況

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Runtime.InteropServices;

      namespace IntroduceToAlgorithm
      {

      public class MaxHeap
      {
      /// <summary>
      /// check the node is obey Max_Heap_property or not
      /// </summary>
      /// <param name="A">an int array represent a heap</param>
      /// <param name="i">the node index</param>
      /// <param name="aLength">the arry length , (some time, we will reduce the length of array)</param>
      public void MaxHeapify(int[] A, int i, int aLength = -1)
      {
      int length = aLength <= -1 ? A.Length : aLength;

      var l
      = Left(i);
      var r
      = Right(i);
      int largest = i;

      if (l < length && A[l] > A[i])
      {
      largest
      = l;
      }

      if (r < length && A[r] > A[largest])
      {
      largest
      = r;
      }

      if (largest != i)
      {
      Exchange(A, i, largest);
      MaxHeapify(A, largest, aLength);
      }
      //MaxHeapify(A, l);
      //MaxHeapify(A, i);


      }

      public int Left(int index)
      {
      return (index + 1) * 2 - 1;
      }

      public int Right(int index)
      {
      return (index + 1) * 2;
      }

      public void Exchange(int[] A, int i, int i2)
      {
      int val = A[i];
      A[i]
      = A[i2];
      A[i2]
      = val;
      }

      /// <summary>
      /// build a max-heap, all element obey max-heap-property
      /// wo only need check element which index less than A.Length/2 -1
      /// </summary>
      /// <param name="A"></param>
      public void Build_Max_Heap(int[] A)
      {
      for (int i = (A.Length / 2 - 1); i >= 0; i--)
      {
      MaxHeapify(A, i);
      }

      }

      public void HeapSort(int[] A)
      {
      int length = A.Length;
      Build_Max_Heap(A);
      for (int i = A.Length - 1; i >= 1; i--)
      {
      Exchange(A,
      0, i);
      MaxHeapify(A,
      0, --length);
      }
      }

      }

      }

      PS:看偽代碼有的時候很郁悶 例如C#數(shù)組下標開始是0,偽代碼中一般是1  轉(zhuǎn)換來轉(zhuǎn)換去就亂了.......尷尬

      posted on 2011-04-05 15:56  聽說讀寫  閱讀(403)  評論(0)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 激情久久av一区二区三区| 好男人视频www在线观看| 久久五月丁香合缴情网| 老司机午夜精品视频资源| 国产日韩综合av在线| 精品乱码一区二区三四五区| 中文毛片无遮挡高潮免费| 四虎国产成人永久精品免费| 免费人成视频网站在线18| √天堂中文www官网在线| 最新av中文字幕无码专区| 亚洲一区成人av在线| 国产精品无码a∨麻豆| 国产av丝袜熟女一二三| 亚洲一区二区三区自拍偷拍 | 亚洲欧美日韩在线码| 午夜福利免费视频一区二区| 乌海市| 国产亚洲精品成人av一区| 蜜桃av色偷偷av老熟女| 国产成人精品1024免费下载| 久久人人爽人人爽人人av | 午夜大片免费男女爽爽影院| 亚洲色欲色欲大片www无码| 又大又硬又爽免费视频| 亚洲综合无码一区二区| 国产av午夜精品福利| 中文字幕久久波多野结衣av| 国产精品+日韩精品+在线播放| 精品婷婷色一区二区三区| 国产精品区一二三四久久| 国产欧美日韩精品a在线观看| 亚洲精品一区国产欧美| 国内精品一区二区不卡| a级国产乱理伦片在线观看al| 亚洲gv天堂无码男同在线观看| 国产无套粉嫩白浆在线| 国产欧美精品一区二区三区-老狼| 视频免费完整版在线播放| 韩产日产国产欧产| 黄色特级片一区二区三区|