插入排序算法

插入排序算法

using System;

namespace AlgorithmDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[10];

            for (int i = 0; i < 10; i++)
            {
                arr[i] = new Random(DateTime.Now.Millisecond + i).Next(1, 100);
            }
            Console.WriteLine("排序之前的数组为 :********************************");
            arr.Show();
            Console.WriteLine();
            Console.WriteLine("排序中的数组为 :********************************");

            InsertSort(arr);
            Console.WriteLine("排序之后的数组为 :********************************");
            arr.Show();
            Console.Read();
        }

        //插入排序
        static void InsertSort(int[] arr)
        {

            int inner, temp;
            for (int outer = 1; outer < arr.Length; outer++)
            {
                temp = arr[outer];
                inner = outer;
                while (inner > 0 && arr[inner - 1] >= temp)
                {
                    arr[inner] = arr[inner - 1];
                    inner -= 1;

                }
                arr[inner] = temp;
                arr.Show();
            }
        }
        //选择排序
        static void SelectionSort(int[] arr)
        {

            int min, temp;
            for (int outer = 0; outer < arr.Length; outer++)
            {
                min = outer;
                for (int inner = outer + 1; inner < arr.Length; inner++)
                {
                    if (arr[inner] < arr[min])
                    {
                        min = inner;
                    }
                }
                temp = arr[outer];
                arr[outer] = arr[min];
                arr[min] = temp;

                arr.Show();
            }
        }


    }

    public static class Extensions
    {
        public static void Show(this int[] arr)
        {

            foreach (var item in arr)
            {
                Console.Write(item + " ");
            }
            Console.WriteLine();
        }
    }
}

排序之前的数组为 :********************************
61 65 18 69 22 74 27 78 31 83

排序中的数组为 :********************************
61 65 18 69 22 74 27 78 31 83
18 61 65 69 22 74 27 78 31 83
18 61 65 69 22 74 27 78 31 83
18 22 61 65 69 74 27 78 31 83
18 22 61 65 69 74 27 78 31 83
18 22 27 61 65 69 74 78 31 83
18 22 27 61 65 69 74 78 31 83
18 22 27 31 61 65 69 74 78 83
18 22 27 31 61 65 69 74 78 83
排序之后的数组为 :********************************
18 22 27 31 61 65 69 74 78 83

原文地址:https://www.cnblogs.com/morec/p/13191954.html