蜜桃精品成人影片_99热在线精品免费_日韩亚洲中字无码一区二区三区_亚洲中文字幕久久精品无码一区

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Unity游戲/VR/AR入門教材 > VR開發(fā)入門教程42:簡單算法之簡單排序

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

來源:奇酷教育 發(fā)表于:

VR開發(fā) VR教程 VR培訓(xùn)

  算法

  程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語言工具和環(huán)境

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

  冒泡排序

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

  算法描述:

  1.比較兩個(gè)數(shù)據(jù)項(xiàng)

  2.如果左邊的數(shù)據(jù)項(xiàng)大,交換兩個(gè)數(shù)據(jù)項(xiàng)

  3.向右移動(dòng)位置重復(fù)1、2步

  編碼的關(guān)鍵點(diǎn):

  1.需要冒泡的趟數(shù)

  2.如何控制兩兩比較

  3.如何優(yōu)化不和已冒泡的最大值進(jìn)行比較

  public static void BubbleSort(int[] arr)

  {

  // 冒泡的次數(shù)

  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;

  }

  }

  }

  }

  選擇排序

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

  算法描述:

  1.掃描整個(gè)序列

  2.從中挑出最小的數(shù)據(jù)項(xiàng)

  3.將最小的數(shù)據(jù)項(xiàng)放置到合適的位置

  示例:6 5 4 7

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

  public static void SelectSort(int[] arr)

  {

  // 選擇的次數(shù)

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

  {

  // 選出本次搜索最小的

  // 為i這個(gè)位置挑選數(shù)值

  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.假設(shè)部分有序(一般設(shè)第一個(gè)數(shù)據(jù)項(xiàng)為第一部分)

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

  若序列基本有序 此排序算法最優(yōu)

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

  public static void InsertSort(int[] arr)

  {

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

  {

  // 監(jiān)視哨

  int temp = arr[i];

  // 為監(jiān)視哨中保存的數(shù)據(jù)移動(dòng)位置

  int insertIndex = i;

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

  {

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

  insertIndex--;

  }

  arr[insertIndex] = temp;

  }

  }

西峡县| 泸定县| 长岛县| 潍坊市| 仪征市| 长兴县| 阳春市| 潜江市| 郸城县| 襄樊市| 大足县| 临朐县| 宁津县| 张掖市| 江源县| 根河市| 临邑县| 池州市| 安平县| 南岸区| 承德市| 揭东县| 瑞丽市| 三门峡市| 翁牛特旗| 黑山县| 兴隆县| 黄山市| 青河县| 铁力市| 平昌县| 保亭| 进贤县| 洛川县| 石台县| 南汇区| 秦皇岛市| 南阳市| 清苑县| 民县| 伊宁市|