几种排序方法的总结


冒泡排序

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[i] = Convert.ToInt32(Console.ReadLine());
    }

    int min_index;
    for (int n = 0; n1; n++)
    {
        min_index = n;           //设置第一个数为最小值

        //从第二个数到最后一个数进行循环
        for (int j = n + 1; 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[i] = Convert.ToInt32(Console.ReadLine());
    }

    //循环从第二个数组元素开始,因为a[0]作为最初已排序部分
    for (int j = 1; 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();
}

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back