c# 插入排序

这篇具有很好参考价值的文章主要介绍了c# 插入排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

插入排序(Insertion Sort):将未排序的元素逐个插入到已排序的序列中的正确位置。

原始数据:{4,3,2,90,10}
第一个循环j=0
首先取出索引为1的元素 3 ,索引为0的元素4,4>3 把4赋值给索引为1的元素 结果为 4 4 2 90 10 然后 j–等于-1
把3赋值给arr[-1+1] 结果为 3 4 2 90 10;
第二个循环 j=1
首先取出索引为1的元素4,索引为2的元素2,4>2把4赋值给索引为2的元素 3结果为 3 4 4 90 10 然后 j-- 等于0
把2赋值给索引为1的元素 结果为 3 2 4 90 10 3>2 把 3赋值给索引1的元素 2结果为 3 3 4 90 10 然后l–等于-1 退出循环
然后arr[-1+1]=2,最终结果为2 3 4 90 10
… 以此类推文章来源地址https://www.toymoban.com/news/detail-672758.html

        public static void Sort(int[] arr)
        {
            //{4, 3, 2, 90, 10 }
            int n = arr.Length;//5
            for (int i = 1; i < n; i++)
            {
                int key = arr[i];
                int j = i - 1;
               
                // 将 arr[0...i-1] 中的元素移动到比 key 大的位置
                while (j >= 0 && arr[j] > key)
                {
                   
                    arr[j + 1] = arr[j];
                    j--;
                }

                arr[j + 1] = key;
            }
        }

到了这里,关于c# 插入排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结与算法之排序-插入排序(直接插入/折半插入/希尔)

    文章目录 目录 前言 一、什么是插入排序 1.直接插入排序 2.折半插入排序          3.希尔排序 总结 理解三种排序,并将三种排序用C++实现,借鉴了王卓老师和没有难学的知识的图例 提示:以下是本篇文章正文内容,下面案例可供参考         插入排序是简单直观的排序方

    2024年02月04日
    浏览(40)
  • 【算法】排序——插入排序及希尔排序

    目录 前言 一、排序的概念及其应用 1.1排序的概念 1.2排序的应用 1.3常见的排序算法 二、插入排序的实现  基于插入排序的优化——希尔排序(缩小增量排序    ========================================================================= 个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏

    2024年02月07日
    浏览(46)
  • 排序算法-插入/希尔排序

    直接插入排序是一种简单的插入排序法,其基本思想是: 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 当插入第i(i=1) 个元素时,前面的 array[0],array[1],…,array[i-1] 已经排好序,此时用

    2024年02月05日
    浏览(42)
  • 排序算法:插入排序

            插入排序的思想非常简单,生活中有一个很常见的场景:在打扑克牌时,我们一边抓牌一边给扑克牌排序,每次摸一张牌,就将它插入手上已有的牌中合适的位置,逐渐完成整个排序。         插入排序有两种写法: 交换法:在新数字插入过程中,不断与前面

    2024年02月11日
    浏览(18)
  • 【排序算法】插入排序

            插入排序:为了给要插入的元素腾出空间,将其余所有元素在插入之前都向右移动一位。与选择排序一样,插入排序中当前索引左边的所有元素都是有序的,但它们的最终位置还不确定,当索引到达数组的右端时,数组排序就完成了。         与选择排序不同的是:

    2024年01月17日
    浏览(23)
  • 排序算法之一:直接插入排序

    直接插入排序是一种简单的插入排序法,其基本思想是: 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列  实际中我们玩扑克牌时,就用了插入排序的思想 当插入第i(i=1)个元素时, 前面的

    2024年02月04日
    浏览(30)
  • 八大排序算法之插入排序+希尔排序

    目录 一.前言(总体简介) 关于插入排序  关于希尔排序: 二.插入排序 函数首部: 算法思路: 算法分析 插入排序代码实现: 插入排序算法的优化前奏:  三.希尔排序(缩小增量排序) 1.算法思想:  2.算法拆分解析  序列分组 分组预排序: 分组预排序的另一种实现方式: 希尔排序的实现

    2023年04月09日
    浏览(43)
  • 排序算法1:冒泡排序、快速排序、插入排序

    排序算法:交换类排序,插入类排序、选择类排序、归并类排序 交换类排序:冒泡排序、快速排序 一、冒泡排序  时间复杂度:内层是ji,外层是从0到n-1,运行的总次数是1+2+3+4+...+n-1,即O() 空间复杂度:O(1),没有使用额外空间,不会因为n的变化而变化 如果数组本身有序,最

    2024年02月21日
    浏览(43)
  • 【算法系列 | 2】深入解析排序算法之——插入排序

    你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 决定开一个算法专栏,希望能帮助大家很好的了解算法。主要深入解析每个算法,从概念到示例。 我们一起努力

    2024年02月08日
    浏览(38)
  • 【算法系列 | 2】深入解析排序算法之插入排序

    你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 决定开一个算法专栏,希望能帮助大家很好的了解算法。主要深入解析每个算法,从概念到示例。 我们一起努力

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包