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

      最近在学习排序算法,就排序算法中的四大经典排序:冒泡排序快速排序选择排序插入排序。会出一系列的讲解排序算法的博客。

      今天继选择排序之后整理一下插入排序。

    一、插入排序的思想

      插入排序,就是在一个无序序列中选定第一个数作为有序序列的第一位,再选取无序序列的第二位和有序序列从后至前依次比较,找到合适的位置插入进去,在选取无序序列的第三位和和有序序列从后至前依次比较………………

      示例数列:{3,5,6,4,9,8}

      演示插入过程(前面的{}是有序数列,后面的{}是无序数列):

      第一趟 {3}{5,6,4,9,8}

      第二趟 {3,5}{6,4,9,8}

      第三趟 {3,5,6}{4,9,8}

      第四趟 {3,4,5,6}{9,8}

      第五趟 {3,4,5,6,9}{8}

      第六趟 {3,4,5,6,8,9}

      可以看出插入排序是无序数列逐渐有序化的过程。

    二、插入排序的代码实现

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace charu
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] intarrays ={3,5,6,4,9,8};
                InsertSort(intarrays);
                foreach (int item in intarrays)
                {
                    Console.Write(item + "   ");
                }
                Console.ReadKey();
            }
            static void InsertSort(int[] array)
            {
                for (int i = 1; i < array.Length; i++)
                {
                    if (array[i - 1] > array[i])
                    {
                        int temp = array[i];//选出小的作为比较值
                        int j = i;
                        while (j > 0 && array[j - 1] > temp)//从第一位开始,查看是否大于比较值
                        {
                            array[j] = array[j - 1];//大于则交换,直到找到正确的位置,插入
                            j--;
                        }
                        array[j] = temp;
                    }
                }
            }
        }
    }

    执行结果:

  • 相关阅读:
    文件操作
    字典的相关函数
    列表相关操作/列表的相关函数
    字符串相关操作/字符串相关函数
    局部变量 与 全局变量
    函数名的使用
    函数的返回值 return
    命名关键字
    收集参数
    默认形参 与 关键字实参的区别
  • 原文地址:https://www.cnblogs.com/janneystory/p/3570693.html
Copyright © 2011-2022 走看看