• <i id="lhqfs"></i>
    <source id="lhqfs"></source>
  • <cite id="lhqfs"></cite>

    <rp id="lhqfs"></rp>
  • <rt id="lhqfs"></rt>
    您現在所在的位置:首頁 >學習資源 > Unity游戲/VR/AR入門教材 > VR開發入門教程42:簡單算法之簡單排序

    VR開發入門教程42:簡單算法之簡單排序

    來源:奇酷教育 發表于:

    VR開發 VR教程 VR培訓

      算法

      程序=算法+數據結構+程序設計方法+語言工具和環境

      做任何事情都有一定的步驟。為解決一個問題而采取的方法和步驟,就稱為算法。

      冒泡排序

      冒泡排序運行起來非常慢,但在概念上排序算法中最簡單的,在剛開始研究排序時也是一種很好的排序算法

      算法描述:

      1.比較兩個數據項

      2.如果左邊的數據項大,交換兩個數據項

      3.向右移動位置重復1、2步

      編碼的關鍵點:

      1.需要冒泡的趟數

      2.如何控制兩兩比較

      3.如何優化不和已冒泡的最大值進行比較

      public static void BubbleSort(int[] arr)

      {

      // 冒泡的次數

      for (int i = 0; i < arr.Length-1; i++)

      {

      for (int j = 0; j < arr.Length-i-1; j++)

      {

      // j j+1

      if (arr[j] > arr[j+1])

      {

      int temp = arr[j];

      arr[j] = arr[j + 1];

      arr[j + 1] = temp;

      }

      }

      }

      }

      選擇排序

      選擇排序改進了冒泡排序,冒泡是比較完就交換,而選擇排序則是選出最小的才交換

      算法描述:

      1.掃描整個序列

      2.從中挑出最小的數據項

      3.將最小的數據項放置到合適的位置

      示例:6 5 4 7

      假設第一個最小,驗證是否最小,6 5,記憶最新的最小位置 5,重復以上2步到數組末尾,最小的位置被找到,0索引和2索引交換位置,如此循環選擇n-1次 程序結束。

      public static void SelectSort(int[] arr)

      {

      // 選擇的次數

      for (int i = 0; i < arr.Length-1; i++)

      {

      // 選出本次搜索最小的

      // 為i這個位置挑選數值

      int min = i;

      for (int j = i+1; j < arr.Length; j++)

      {

      if (arr[j] < arr[min])

      {

      min = j;

      }

      }

      // 交換min和i

      if (min != i)

      {

      int temp = arr[min];

      arr[min] = arr[i];

      arr[i] = temp;

      }

      }

      }

      插入排序

      插入排序是簡單排序里最好的一種,但是稍微麻煩一些

      算法描述:

      1.假設部分有序(一般設第一個數據項為第一部分)

      2.其他輸入依次插入之前的有序序列

      若序列基本有序 此排序算法最優

      要注意為待插入元素找到合適位置

      public static void InsertSort(int[] arr)

      {

      for (int i = 1; i < arr.Length; i++)

      {

      // 監視哨

      int temp = arr[i];

      // 為監視哨中保存的數據移動位置

      int insertIndex = i;

      while (insertIndex > 0 && arr[insertIndex-1]>temp)

      {

      arr[insertIndex] = arr[insertIndex - 1];

      insertIndex--;

      }

      arr[insertIndex] = temp;

      }

      }

    老女人老肥熟国产在线视频_亚洲av无限制福利在线_亚洲第一天堂国产丝袜熟女_免费好看的国产精品