几种排序方法的总结

冒泡排序

 

static void Main(string[] args)
{
    int[] a = new int[10];

    for (int i = 0; i < a.Length; i++)
    {
        a[i] = Convert.ToInt32(Console.ReadLine());
    }

    for (int m = 0; m < a.Length; m++)
    {
        for (int n = 0; n < a.Length - 1; n++)
        {
            if (a[n] > a[n + 1])       //从小到大用大于号,反之小于号
            {
                int temp;
                temp = a[n]; 
                a[n] = a[n + 1]; 
                a[n + 1] = temp;
            }
        }
    }

    Console.WriteLine("===================");
    for (int l = 0; l < a.Length; l++)
    {
        Console.WriteLine(a[l]);
    }

    Console.ReadKey();
}

 

 

 

选择排序

static void Main(string[] args)
{
    int[] a = new int[10];
    for (int i = 0; i<a.Length; i++)
    {
        a[i] = Convert.ToInt32(Console.ReadLine());
    }

    int min_index;
    for (int n = 0; n<a.Length - 1; n++)
    {
        min_index = n;           //设置第一个数为最小值

        //从第二个数到最后一个数进行循环
        for (int j = n + 1; j<a.Length; j++)     
        {   
            //把从第二个数到最后的每个数和第一个数比较,如果比他小,就把索引赋值
            if (a[j] < a[min_index])          
            {
                min_index = j;
            }

            //找到最小项交换,即将这一项移到列表中的正确位置
            if (min_index != n) 
            {
                int x;
                x = a[n];
                a[n] = a[min_index];
                a[min_index] = x;
            }
        }
    }

    Console.WriteLine("===================");
    for (int l = 0; l < a.Length; l++)
    {
        Console.WriteLine(a[l]);

    }

    Console.ReadKey();
}

插入排序

static void Main(string[] args)
{
    int[] a = new int[10];
    for (int i = 0; i<a.Length; i++)
    {
        a[i] = Convert.ToInt32(Console.ReadLine());
    }

    //循环从第二个数组元素开始,因为a[0]作为最初已排序部分
    for (int j = 1; j<a.Length; j++)
    {
        //temp标记为未排序第一个元素
        int temp = a[j];         
        int x = j - 1;

        /*将temp与已排序元素从小到大比较,寻找temp应插入的位置*/
        while (x >= 0 && a[x] > temp)  
        {
            a[x + 1] = a[x];
            x--;
        }

        a[x + 1] = temp;
    }

    Console.WriteLine("===================");
    for (int l = 0; l < a.Length; l++)
    {
        Console.WriteLine(a[l]);

    }

    Console.ReadKey();
}

 

 

 

 
posted @ 2020-02-29 20:40  殇琉璃  阅读(270)  评论(0编辑  收藏  举报