C#经典四种算法

  • 冒泡排序:
复制代码
 #region 冒泡排序
 static void Main(string[] args)
 {
     int[] list = new int[] { 1, 90, 23, 54, 12, 59, 59, 95, 76, 83 };
     int num = list.Length - 1;
     for (int i = 0; i < num; i++)
     {
         for (int j = 0; j < num - i; j++)
         {
             if (list[j] > list[j + 1])
             {
                 int temp = list[j];
                 list[j] = list[j + 1];
                 list[j + 1] = temp;
             }
         }
     }
     for (int i = 0; i < list.Length; i++)
     {
         Console.WriteLine(list[i]);
     }
     Console.ReadKey();
 }
 #endregion
复制代码
  • 选择排序
复制代码
#region 选择排序
public static void Main(string[] args)
{
    int[] ints = new[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };
    SortTest st = new SortTest();
    st.Sort(ints);
    for (int m = 0; m <= 13; m++)
        Console.WriteLine("{0}", ints[m]);
}

public class SortTest
{
    private int min;
    public void Sort(int[] list)
    {
        for (int i = 0; i < list.Length; ++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;
        }
    }
}
#endregion
复制代码
  • 插入排序
复制代码
#region 插入排序
public static void Main(string[] args)
{
    int[] iArrary = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };
    SortTest st = new SortTest();
    st.Sort(iArrary);
    for (int i = 0; i <= 13; i++)
        Console.WriteLine("{0}", iArrary[i]);
    Console.ReadKey();
}
public class SortTest
{
    public void Sort(int[] list)
    {
        for (int i = 0; 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;
        }
    }
}
#endregion
复制代码
  • 希尔排序
复制代码
#region 希尔排序
public static void Main(string[] args)
{
    int[] iArrary = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };
    SortTest st = new SortTest();
    st.Sort(iArrary);
    for (int i = 0; i <= 13; i++)
        Console.WriteLine("{0}", iArrary[i]);
    Console.ReadKey();
}
public class SortTest
{
    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;
            }
        }
    }
}
#endregion
复制代码

 

posted @   左耳*  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示