<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C#實現(xiàn)——十大排序算法之選擇排序

          共 1524字,需瀏覽 4分鐘

           ·

          2020-10-15 17:37

          選擇排序法

          1.工作原理(算法思路)

          1. 給定一個待排序數(shù)組,找到數(shù)組中最小的那個元素

          2. 如果最小元素不是待排序數(shù)組的第一個元素,則將其和第一個元素互換

          3. 在剩下的元素中,重復1、2過程,直到排序完成。

          2.動圖演示

          3.C#代碼實現(xiàn)

          根據(jù)原理設計算法:

           class Program{        //選擇排序法    private static void chooseSort(int[] array){        //第一個for循環(huán):每一次循環(huán)完成后得到的當前的最大元素都與第i位做交換        for (int i = 0; i < array.Length; i++)        {            //min為最小元素的索引            int min = i;
          //第二個for循環(huán):將當前的array[j]與array[min]作比較,如果array[j]更小,則替換min的當前索引 for (int j = i + 1; j < array.Length; j++) { if (array[min] > array[j]) { min = j; } } //當?shù)诙€for循環(huán)完成時,array[min]中存儲的就是當前最小元素 //將array[min]與array[i]交換 int temp = array[i]; array[i] = array[min]; array[min] = temp; } }
          //打印輸出數(shù)組 private static void printArray(int[] array){ foreach (int item in array) { Console.Write(item + "\t"); } Console.WriteLine(); }
          static void Main(string[] args){ int[] array = new int[10] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; printArray(array); chooseSort(array); printArray(array); Console.ReadKey();
          }
          }


          輸出結果

          4.性能分析

          1)復雜度

          2)選擇排序法特點

          • 執(zhí)行的比較和交換次數(shù)
            比較:N*(N-1)/2
            交換:N

          • 運行時間與輸入無關
            在每一次的for循環(huán)結束后并不能為下一次的循環(huán)提供有效信息。這種性質在某些時候是一種缺陷。在數(shù)組大小相同時,當一個幾乎已經(jīng)有序的數(shù)組使用選擇排序法花費的時間和無序數(shù)組所花費的時間是一致的。

          • 數(shù)據(jù)的移動量最少
            交換的次數(shù)和數(shù)組的大小呈線性關系,其他的排序算法對數(shù)據(jù)移動量都是線性對數(shù)級別或平方級別的。


          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩欧美一级精品久久 | 免费无码不卡视频在线观看 | 一本道无码在线观看 | 日本女人一区二区三区 | 日韩18成人久久久 |