排序算法-插入排序 insertSort

本文介绍了插入排序的基本原理和实现方法,通过伪代码和实际编程示例详细阐述了插入排序的过程,包括如何从数组第三位开始插入以及如何判断和调整元素位置。插入排序的核心思路是通过与前一位比较并移动元素,找到合适的位置插入待排序项。
摘要由CSDN通过智能技术生成

插入排序,形式上最容易理解的排序,操作起来却有点复杂,毕竟不属于交换排序。在实现这个算法时,参考了以前学过的PPT的伪代码,用自己的语言实现了一下。

前面数据输入部分copy自我的另一篇文章(冒泡算法)的代码。

插入排序应该是从数组的第三位开始插入的,所以前两位的大小还是要手动判断一下。其核心思路是:待插入位(i)和前一位比较(i-1),若小于前一位,则把i放到temp里,i-1移到i的位置。同时i-2的位置开始和temp进行比较。此时利用j=i-2来循环,若i-2之前的位大于temp,则后移,一直j--到合适的位置。此时将temp放回j此时指定的位置。

以下代码可以在VS-控制台项目中直接运行。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace insertSort
{
    class Program
    {
        /*
          插入排序,时间复杂度为O(n^2),空间复杂度为1,稳定排序 
        */
       
        static void Main(string[] args)
        {
            #region 输入数据 数组名为intArr,长度为arrLength
            start:
            Console.Write("请输入要排序的若干整数,用【空格】或【,】隔开,按回车结束(输入个数在100以内):\r\n");
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值