zoukankan      html  css  js  c++  java
  • 插入排序算法

    插入排序算法

    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

  • 相关阅读:
    C++ 根据对象名字创建对象
    Google是如何测试的(一)
    lex yacc 学习
    C语言宏定义时#(井号)和##(双井号)的用法
    更多编译器对C++11的支持比较
    用C++11替代Boost的实验之三
    最先进的开源游戏引擎KlayGE 4.2发布
    各编译器对C++11的支持比较
    在Android模拟器上的一些小陷阱
    推出KlayGE Foundation Library
  • 原文地址:https://www.cnblogs.com/morec/p/13191954.html
Copyright © 2011-2022 走看看