最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#實現(xiàn)選擇排序的示例

 更新時間:2020年10月09日 08:36:06   作者:歐氣檸檬  
這篇文章主要介紹了c#實現(xiàn)選擇排序的示例,幫助大家更好的理解和使用排序算法,感興趣的朋友可以了解下

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();

  }

}

輸出結(jié)果

4.性能分析

1)復雜度

2)選擇排序法特點

  • 執(zhí)行的比較和交換次數(shù)

比較: N*(N-1)/2
交換: N

  • 運行時間與輸入無關

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

  • 數(shù)據(jù)的移動量最少

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

以上就是c#實現(xiàn)選擇排序的示例的詳細內(nèi)容,更多關于c# 選擇排序的資料請關注腳本之家其它相關文章!

相關文章

  • C#多線程Thread使用示例詳解

    C#多線程Thread使用示例詳解

    這篇文章主要為大家詳細介紹了C#多線程Thread使用示例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • WPF實現(xiàn)帶模糊搜索的DataGrid的示例代碼

    WPF實現(xiàn)帶模糊搜索的DataGrid的示例代碼

    這篇文章主要為大家詳細介紹了WPF如何實現(xiàn)帶模糊搜索的DataGrid,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • Unity的BuildPlayerProcessor實用案例深入解析

    Unity的BuildPlayerProcessor實用案例深入解析

    這篇文章主要為大家介紹了Unity的BuildPlayerProcessor實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C#多線程學習之(五)使用定時器進行多線程的自動管理

    C#多線程學習之(五)使用定時器進行多線程的自動管理

    這篇文章主要介紹了C#多線程學習之使用定時器進行多線程的自動管理,實例分析了C#使用timer定時器類實現(xiàn)針對多線程的自動管理功能,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Directory文件類的實例講解

    Directory文件類的實例講解

    下面小編就為大家分享一篇Directory文件類的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • C#遞歸算法之快速排序

    C#遞歸算法之快速排序

    快速排序由C.A.R發(fā)明,它依據(jù)中心元素的值,利用一系列遞歸調(diào)用將數(shù)據(jù)表劃分成越來越小的子表。在每一步調(diào)用中,經(jīng)過多次的交換,最終為中心元素找到最終的位置。
    2016-06-06
  • C#語句先后順序?qū)Τ绦虻慕Y(jié)果有影響嗎

    C#語句先后順序?qū)Τ绦虻慕Y(jié)果有影響嗎

    有朋友問我,C#中C#語句先后順序影響程序的結(jié)果嗎?告訴大家,答案是肯定的,絕對影響程序的結(jié)果,所以在程序中一定要注意C#語句的順序
    2015-10-10
  • C#實現(xiàn)剪切板功能

    C#實現(xiàn)剪切板功能

    這篇文章主要為大家詳細介紹了C#實現(xiàn)剪切板功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#基于正則去掉注釋的方法示例

    C#基于正則去掉注釋的方法示例

    這篇文章主要介紹了C#基于正則去掉注釋的方法,結(jié)合簡單實例形式分析了C#針對注釋符號的正則匹配相關操作技巧,需要的朋友可以參考下
    2017-05-05
  • Winform實現(xiàn)鼠標可穿透的窗體鏤空效果

    Winform實現(xiàn)鼠標可穿透的窗體鏤空效果

    這篇文章主要介紹了Winform實現(xiàn)鼠標可穿透的窗體鏤空效果的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10

最新評論

麟游县| 济宁市| 基隆市| 中卫市| 黑龙江省| 罗城| 双江| 密山市| 兴国县| 监利县| 辰溪县| 许昌县| 固始县| 高青县| 涿州市| 精河县| 湖北省| 文水县| 临夏县| 大方县| 揭西县| 西乌珠穆沁旗| 措美县| 安顺市| 沂源县| 岫岩| 广元市| 桦川县| 曲靖市| 政和县| 隆林| 南城县| 肃南| 慈溪市| 疏附县| 白城市| 巫山县| 怀来县| 怀宁县| 莲花县| 邹平县|