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

     //冒泡排序算法
            static void Main(string[] args)
            {
                int[] array = { 2, 3, 7, 1, 4, 9, 6, 8, 10 };
                var newarrry = BubbleSort(array);
                for (int i = 0; i < newarrry.Length; i++)
                {
                    Console.WriteLine(newarrry[i]);
                }
                Console.Read();
            }
    
            public static int[] BubbleSort(int[] array)
            {
                int temp = 0;
                for (int i = 0; i < array.Length - 1; i++)
                {
                    for (int j = i + 1; j < array.Length; j++)
                    {
                        //if (array[j] < array[i])//冒泡升序
                        //{
                        //    temp = array[i];
                        //    array[i] = array[j];
                        //    array[j] = temp;
                        //}
    
                        if (array[j] > array[i])//冒泡降序
                        {
                            temp = array[i];
                            array[i] = array[j];
                            array[j] = temp;
                        }
                    }
                }
                return array;
            }
    
            //选择排序算法
            static void Main(string[] args)
            {
                int[] array = { 2, 3, 7, 1, 4, 9, 6, 8, 10 };
                var newarrry = SelectSort(array);
                for (int i = 0; i < newarrry.Length; i++)
                {
                    Console.WriteLine(newarrry[i]);
                }
                Console.Read();
            }
    
            public static int[] SelectSort(int[] array)
            {
                int temp = 0;
                int minindex = 0;
                for (int i = 0; i < array.Length - 1; i++)
                {
                    minindex = i;
                    for (int j = i; j < array.Length; j++)
                    {
                        if (array[j] < array[minindex])//每次循环选择最小的数插入到数组中
                        {
                            minindex = j;
                        }
                    }
                    temp = array[minindex];
                    array[minindex] = array[i];
                    array[i] = temp;
                }
                return array;
            }
    
            //插入排序算法
            static void Main(string[] args)
            {
                int[] array = { 2, 3, 7, 1, 4, 9, 6, 8, 10 };
                var newarrry = InsertSort(array);
                for (int i = 0; i < newarrry.Length; i++)
                {
                    Console.WriteLine(newarrry[i]);
                }
                Console.Read();
            }
    
            public static int[] InsertSort(int[] array)
            {
    
                for (int i = 1; i < array.Length; i++)
                {
                    int t = array[i];
                    int j = i;
                    while ((j > 0) && (array[j - 1] > t))
                    {
                        array[j] = array[j - 1];
                        j--;
                    }
                    array[j] = t;
                }
                return array;
            }
    
    
            //希尔排序算法
            static void Main(string[] args)
            {
                int[] array = { 2, 3, 7, 1, 4, 9, 6, 8, 10 };
                var newarrry = ShellSort(array);
                for (int i = 0; i < newarrry.Length; i++)
                {
                    Console.WriteLine(newarrry[i]);
                }
                Console.Read();
            }
    
            public static int[] ShellSort(int[] array)
            {
                int inc;
                for (inc = 1; inc <= array.Length / 9; inc = 3 * inc + 1) ;
                for (; inc > 0; inc /= 3)
                {
                    for (int i = inc + 1; i <= array.Length; i += inc)
                    {
                        int t = array[i - 1];
                        int j = i;
                        while ((j > inc) && (array[j - inc - 1] > t))
                        {
                            array[j - 1] = array[j - inc - 1];
                            j -= inc;
                        }
                        array[j - 1] = t;
                    }
                }
                return array;
            }
  • 相关阅读:
    i3wm菜单
    开始写博客拉
    xterm配置
    Linux Tips
    docker下运行labview2010
    oracle连接字符串解析
    C# 域登录实现
    解决Winform程序在不同分辨率系统下界面混乱
    FTP设置:FTP隔离用户
    sqlserver 启动不了sqlserver服务,提示特定服务错误代码10048
  • 原文地址:https://www.cnblogs.com/lihfeiblogs/p/4123051.html
Copyright © 2011-2022 走看看