直接插入排序

直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。

直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将待比较的数值与它的前一个数值进行比较,所以外层循环是从第二个数值开始的。当前一数值比待比较数值大的情况下继续循环比较,直到找到比待比较数值小的并将待比较数值置入其后一位置,结束该次循环。

C#版代码如下:(假设从小到大排序)

private void btnSorting_Click(object sender, EventArgs e)
        {
            int[] num = new int[] { 45, 38, 66, 90, 88, 10, 25, 45 };
            int i;
            int j;
            //移动最后交换:
            for (i = 1; i <= num .Length -1; i++)
            {
                int temp = num[i];  //保存待插入的关键码
                int position = i;   //记录最终关键码将要插入的位置
                for (j = i-1; j >=0 ; j--)
                {
                    if (temp <num [j])
                    {
                        num[j + 1] = num[j];  //依次往后移,没有交换
                        position = j;
                    }
                    else
                    {
                        break;
                    }
                }
                num[position] = temp;  //将关键码插入本趟比较的最终位置

                //打印每一趟的结果:
                txtShow.Text = txtShow.Text + "\r\n" + "第" + i + "趟排序结果:";
                for (int k = 0; k < num .Length ; k++)
                {
                    txtShow.Text = txtShow.Text + "  " + num[k];
                }
            }
        }




感谢您的阅读~




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值