用C语言实现插入排序算法

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

1.设计思路
用插入排序对长度为n的待排序数组A进行排序的伪代码(在代码中,A中元素的数目n用A.length来表示)。
伪代码如下:

INSERTION-SORT(A)
for j=2 to A.length:
    key=A[j]     //将A[j]插入已排序序列A[1..j-1]
    i=j-1
    while i>0 and A[i]>key
        A[i+1]= A[i]
        i=i-1
    A[i+1]=key

2.源代码

#include <stdio.h>
int main(void)
{
    int a[100];
    int i,j,t,n;
    scanf("%d",&n);     //输入要排序的数的个数
    for(i=0;i<n;++i)       //输入要排序的数
	{
        scanf("%d",a+i);
	}
    for(i=1;i<n;++i)
    {
        t=a[i];
        for(j=i-1;j>-1 && a[j]>t;j--)     //和前面的数作对比
        {           
            a[j+1]=a[j];      //如果前面的数大,则后移
        }
        a[j+1]=t;          //将数插入
        for(j=0;j<n;++j)
            printf("%-5d",a[j]);
        printf("\n\n");
    }
    return 0;
}

3.运行结果
第一行的5为要排序的元素个数,12,32,6,67,43为要排序的数,排序过程为6插到最前面,43插到67前面,即可完成从小到大的插入排序。
用C语言实现插入排序算法,排序算法,c语言,算法文章来源地址https://www.toymoban.com/news/detail-620061.html

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

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

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

相关文章

  • 八大排序算法(C语言版)之插入排序

    八大排序算法: 超链接: 插入排序 选择排序 交换排序 归并排序 非比较排序 排序:所谓排序,就是使一串记录, 按照其中的某个或某些的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的的记录,若经过排序,这些

    2024年02月07日
    浏览(44)
  • C语言--直接插入排序【排序算法|图文详解】

    直接插入排序又叫简单插入排序,是一种 简单直观 的排序算法,它通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。 算法描述: 假设要排序的列表为arr,列表的第一个元素arr[0]默认已经是有序序列。 从第二个元素开始,即arr[

    2024年01月19日
    浏览(44)
  • 用C语言进行学生成绩排序(插入排序算法)

    从今天开始我们就要开始学习排序算法啦! 排序,就是重新排列表中的元素,使表中的元素满足按有序的过程。为了查找方便,通常希望计算机中的表是按有序的。 除了我们之前了解的时间复杂度和空间复杂度来判断一个算法的好坏之外,在排序算法这里我们引

    2024年02月15日
    浏览(42)
  • c语言编写排序算法——直接插入排序(附详细代码)

    记号说明: a[k:r] 是指序列 a[k] a[k+1] a[k+2] … a[r] 。 为了讨论简单,假设待排序的每个记录是一个整数,这个整数就是排序码。 直接插入排序 :先将第一个记录看作是一个有序的记录序列,然后从第二个记录开始,依次将未排序的记录插入到这个有序的记录序列中去,直到整

    2024年02月11日
    浏览(42)
  • 插入排序和希尔排序:用C语言打造高效的排序算法

    插入排序的思路就像是你在整理一堆扑克牌。你先拿起第一张牌,然后拿起第二张牌,把它插入到合适的位置,使得你手上的两张牌是有序的。接着,你再拿起第三张牌,也把它插入到合适的位置,使得你手上的三张牌是有序的。依此类推,直到你把所有的牌都拿到手上,这

    2024年02月16日
    浏览(38)
  • 折半插入排序算法详解之C语言版

    折半插入排序是插入排序方法中一种,相比较与直接插入排序算法,减少了排序过程中比较次数,也是一种常用的排序算法。 折半插入排序算法基本原理是将折半查找方法与直接插入排序方法相结合,也就是在每一次插入新元素时,利用折半查找方法找到其待插入的位置。

    2024年02月12日
    浏览(39)
  • 插入排序-C语言实现

            🍔在学数据结构的第一节课就知道了数据结构课程是要管理并且学会操作数据,当然操作数据首先想到的就是数据的排序,排过顺序的数据的使用价值才够大。前面我们学习了顺序表也学习了链表等等,这些就是储存数据的方法,下面我们来看一看插入排序的特

    2024年02月09日
    浏览(35)
  • 稳定的排序算法:直接插入排序和冒泡排序 (c++实现)

    1.直接插入排序: 插入排序:就是把数组分为左右两个序列,保持左边序列中所有元素是有序的,(当左边序列只有第一个元素时,本身就是有序的,)每次往后移一个,将这个元素保存起来,跟左边的元素进行比较,直到找到第一个小于它的元素后停下,此时的位置是这个

    2024年02月10日
    浏览(45)
  • 数据结构——C语言实现常见排序(插入排序、希尔排序、选择排序、堆排序、冒泡排序)

    现在是北京时间2023年6月23日13点19分,度过了一个非常愉快的端午节。由于刚从学校回家,一下子伙食强度直升了个两三个档次。这也导致我的肠胃不堪重负,我也准备等会去健身房消耗一下盈余的热量。回到家陪伴爷爷走人生最后的阶段才是我这个暑假最重要的事情。自从

    2024年02月10日
    浏览(53)
  • 对链表使用插入排序的C语言实现示例

    在这个示例中,我们定义了 insertionSortList 函数用于对链表进行插入排序。然后,在 main 函数中创建了示例链表,调用 insertionSortList 函数进行排序,并打印结果。最后,释放了链表节点的内存。 插入排序的时间复杂度为O(n^2),在某些情况下比归并排序的O(nlogn)更有效。 特殊情

    2024年02月20日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包