• 数据结构排序


    数据结构基本知识
    http://student.zjzk.cn/course_ware/data_structure/web/main.htm
    排序实现:
        //选择排序算法
        public class SelectionSorter
        
    {
            
    private int min;
            
    public void Sort(int[] list)
            
    {
                
    for (int i = 0; i < list.Length - 1; i++)
                
    {
                    min 
    = i;
                    
    for (int j = i + 1; j < list.Length; j++)
                    
    {
                        
    if (list[j] < list[min])
                            min 
    = j;
                    }

                    
    int t = list[min];
                    list[min] 
    = list[i];
                    list[i] 
    = t;
                }


            }

        }
        public class BubbleSorter
        
    {
            
    //冒泡排序算法
            public void Sort(int[] list)
            
    {
                
    int i, j, temp;
                
    bool done = false;
                j 
    = 1;
                
    while ((j < list.Length) && (!done))
                
    {
                    done 
    = true;
                    
    for (i = 0; i < list.Length - j; i++)
                    
    {
                        
    if (list[i] > list[i + 1])
                        
    {
                            done 
    = false;
                            temp 
    = list[i];
                            list[i] 
    = list[i + 1];
                            list[i 
    + 1= temp;
                        }

                    }

                    j
    ++;
                }


            }

        }
        //希尔排序  
        public class ShellSorter
        
    {
            
    public void Sort(int[] list)
            
    {
                
    int inc;
                
    for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
                
    for (; inc > 0; inc /= 3)
                
    {
                    
    for (int i = inc + 1; i <= list.Length; i += inc)
                    
    {
                        
    int t = list[i - 1];
                        
    int j = i;
                        
    while ((j > inc) && (list[j - inc - 1> t))
                        
    {
                            list[j 
    - 1= list[j - inc - 1];
                            j 
    -= inc;
                        }

                        list[j 
    - 1= t;
                    }

                }

            }

        }
        //插入排序
        public class InsertionSorter
        
    {
            
    public void Sort(int[] list)
            
    {
                
    for (int i = 1; i < list.Length; i++)
                
    {
                    
    int t = list[i];
                    
    int j = i;
                    
    while ((j > 0&& (list[j - 1> t))
                    
    {
                        list[j] 
    = list[j - 1];
                        
    --j;
                    }

                    list[j] 
    = t;
                }

            }

        }
        public class MainClass
        
    {
            
    //测试
            public static void Main()
            
    {
                
    int[] iArrary = new int[] 151361055992871234753347 };

                
    //BubbleSorter sh = new BubbleSorter();
                
    //sh.Sort(iArrary);

                
    //ShellSorter sh = new ShellSorter();
                
    //sh.Sort(iArrary);

                InsertionSorter sh 
    = new InsertionSorter();
                sh.Sort(iArrary);

                
    //SelectionSorter sh = new SelectionSorter();
                
    //sh.Sort(iArrary);

                
    for (int m = 0; m < iArrary.Length; m++)
                Console.Write(
    "{0} ", iArrary[m]);
                Console.WriteLine();
            }

        }
    后记:
    冒泡是不断的把小的数向前移
    选择是每次取最小的,然后向已经排好的部分最后添加
    插入是把下一个数插入到已经排好的序列中的合适位置
  • 相关阅读:
    [引用]SharePoint:在计算字段中使用Today, Me之类的函数的方法,有点搞笑,但是有效
    在infopath forms service 中自动保存而不用输入文件名
    MOSS的Sharepoint 列表中关于查阅项的处理
    Infopath Form Service示例:如何在InfoPath表单中引用SQL SERVER 中的数据?
    面对DNS劫持,只能坐以待毙吗?
    聚焦云原生,阿里云与 CNCF 共话「云未来,新可能」
    干货分享:细说双 11 直播背后的压测保障技术
    ALB Ingress 发布!轻松应对云原生应用流量管理
    如何用20分钟就能获得同款企业级全链路灰度能力?
    Serverless 架构模式及演进
  • 原文地址:https://www.cnblogs.com/xh831213/p/1212221.html
Copyright © 2020-2023  润新知