zoukankan      html  css  js  c++  java
  • C#排序算法

     1.二分查找

    设待排序的记录共8个,排序码分别为28,13,72,85,39,41,6,20. 在前七个记录都已排序的基础上,采用折半插入第八个记录的过程如下:
    (A) [6  13  28  39  41  72  85]  (20)
             l=1   m=4   r=7      
             20<39,  m-1=3=r
    (B) [6  13  28]  39  41  72  85  (20)
             l=1   m=2   r=3
             20>13,  m+1=3=l
    (C) 6  13  [28]  39  41  72  85  (20)
             l=m=r=3    
             20<28,  m-1=2=r      
             l>r,二分法结束,l=3为插入位置
    (D) 6  13  (20)  28  39  41  72  85
    1.插入排序之二分查找排序

    2、排序算法
    冒泡排序:这是最原始,也是众所周知的最慢的算法了。倒序(最糟情况)
    第一轮:10,9,8,7->10,9,7,8->10,7,9,8->7,10,9,8(交换3次)
    第二轮:7,10,9,8->7,10,8,9->7,8,10,9(交换2次)
    第一轮:7,8,10,9->7,8,9,10(交换1次)
    循环次数:6次
    交换次数:6次
    冒泡排序算法 
    选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
    初始关键字 [49 38 65 97 76 13 27 49]
    第一趟排序后 13 [38 65 97 76 49 27 49]
    第二趟排序后 13 27 [65 97 76 49 38 49]
    第三趟排序后 13 27 38 [97 76 49 65 49]
    第四趟排序后 13 27 38 49 [49 97 65 76]
    第五趟排序后 13 27 38 49 49 [97 97 76]
    第六趟排序后 13 27 38 49 49 76 [76 97]
    第七趟排序后 13 27 38 49 49 76 76 [ 97]
    最后排序结果 13 27 38 49 49 76 76 97
    选择排序算法
    直接插入排序(straight insertion sort)的作法是:
    每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。
    初始序列:
    i=1 [46] 58 15 45 90 18 10 62
            ↓
    i=2 [46 58] 15 45 90 18 10 62
             ┌——┘
             ↓
    i=3 [15 46 58] 45 90 18 10 62
                 ┌——┘
                 ↓
    i=4 [15 45 46 58] 90 18 10 62
                                ↓
    i=5 [15 45 46 58 90] 18 10 62
                 ┌—————┘
                 ↓
    i=6 [15 18 45 46 58 90] 10 62
            ┌————————┘  
            ↓
    i=7 [10 15 18 45 46 58 90] 62
                                          ┌—┘
                                          ↓
    i=8 [10 15 18 45 46 58 62 90]

    插入排序算法
     希尔排序(缩小增量法) :属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序 初始:d=5   
              49   38   65   97   76   13   27   49*   55   04   
               |----------------------------|   
                      38                              27   
                       |---------------------------|   
                            65                              49*      
                             |----------------------------|   
                                    97                              55   
                                      |--------------------------|   
                                          76                                04
                                            |-----------------------------|
      一趟结果   
              13   27   49* 55   04   49   38   65     97     76  
      d=3
              13   27   49* 55   04   49   38   65     97     76  
                 |---------------|----------------|--------------------|   
                      27                04                 65   
                       |----------------|----------------|   
                             49*               49                  97   
                               |----------------|-----------------|   
      二趟结果   
                13   04   49* 38   27   49   66   65   97   76   
      d=1   
                13   04   49* 38   27   49   66   65   97   76   
                  |-----|-----|-----|-----|-----|-----|-----|-----|-----|
      三趟结果   
                04   13   27   38   49* 49   55   65   76   97   
    希尔排序

    3..求n个数中m个数的全排列
  • 相关阅读:
    暂存。2
    暂存。
    dom兼容性问题3 元素操作
    一个查看Access数据库密码的工具
    解除IIS配置节锁定
    解决cef中title不现实tooltip的问题
    创建.symlnk文件
    查询orcale运行的SQL语句记录
    跨域http头
    C#抓取天气数据
  • 原文地址:https://www.cnblogs.com/luowei/p/1047018.html
Copyright © 2011-2022 走看看