排序(冒泡、直接插入、选择)

冒泡排序

从小到大

namespace ConsoleApp1
{
    class Program
    {  
        static void Main()
        {
            int[] arr = new int[] { 63, 3, 34, 6, 15, 1 };
            int j, temp;
            for(int i = 0; i < arr.Length - 1; i++)
            {
                j = i + 1;
                id:
                if (arr[i] > arr[j])
                {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                    goto id;
                }
                else
                if (j<arr.Length-1)
                {
                    j++;
                    goto id;
                }
            }
            foreach (int n in arr)
                Console.WriteLine(n + "");
        }
    }
    
}

直接插入排序

将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表,再从剩下的关键字中选取下一个插入对象

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            int[] arr = new int[] { 63, 3, 34, 6, 15, 1 };
            for (int i = 0; i < arr.Length; ++i)
            {
                int temp = arr[i];
                int j = i;
                while ((j > 0) && (arr[j - 1]) > temp)
                {
                    arr[j] = arr[j - 1];
                    --j;

                }
                arr[j] = temp;
            }
            Console.WriteLine("排序后的结果为:");
            foreach (int n in arr)
                Console.WriteLine("{0}", n + "");
            Console.WriteLine();
        }
    }
}

选择排序

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            int[] arr = new int[] { 63, 3, 34, 6, 15, 1 };
            int min;
            for (int i = 0; i < arr.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[j] < arr[min])
                        min = j;
                }
                int t = arr[min];
                arr[min] = arr[i];
                arr[i] = t;
            }
            Console.WriteLine("排序后的结果为:");
            foreach (int n in arr)
                Console.WriteLine("{0}", n + "");
        }
    }
    
}

猜你喜欢

转载自blog.csdn.net/qq_40091720/article/details/87989150