文档章节

C 数据结构与算法系列 插入排序

起什么name呢
 起什么name呢
发布于 2016/04/12 11:55
字数 308
阅读 27
收藏 6

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

参照 实验楼 插入排序代码

它的做法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程,如下图所 示。

下附实验代码

#include <stdio.h>
#include <stdlib.h>

int n;

/*
 * 直接插入排序(头几遍可能会晕 拿张纸画画就懂了 回头再看几遍确保理解透彻)
 */
void InsertSort(int *array)
{
    int i, j;
    for (i = 2; i <= n; i++)
    {
        if (array[i] < array[i - 1])
        {
            array[0] = array[i];
            array[i] = array[i - 1];
            for (j = i - 2; array[0] < array[j]; j--)
            {
                array[j + 1] = array[j];
            }
            array[j + 1] = array[0];
        }
    }
}

int main()
{
    int i;
    int *array;
    printf("Please enter the length of arr:\n");
    scanf("%d", &n);
    array = (int*) malloc(sizeof(int) * (n + 1));
    printf("Please enter each element(seperate by space):");
    for (i = 1; i <= n; i++)
    {
        scanf("%d", &array[i]);
    }

    InsertSort(array);
    printf("sorted array:");
    for (i = 1; i <= n; i++)
    {
        printf("%d ", array[i]);
    }
    printf("\n");
}


© 著作权归作者所有

起什么name呢
粉丝 1
博文 40
码字总数 12807
作品 0
朝阳
高级程序员
私信 提问
五分钟学会一个高难度算法:希尔排序

前言 由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画来描述常见的数据结构和算法...

公众号_五分钟学算法_每日更新
2018/12/05
0
0
Python天天美味(31) - python数据结构与算法之插入排序

1. 直接插入排序插入排序算法思路是: 假定这个数组的序是排好的,然后从头往后,如果有数比当前外层元素的值大,则将这个数的位置往后挪,直到当前外层元素的值大于或等于它前面的位置为止.这具算...

zting科技
2017/01/11
0
0
Python天天美味(29) - 调用VC++的动态链接库(DLL)

1. 首先VC++的DLL的导出函数定义成标准C的导出函数: #ifdef LRDLLTEST_EXPORTS #define LRDLLTESTAPI _declspec(dllexport) #else #define LRDLLTESTAPI _declspec(dllimport) #endif exte......

zting科技
2017/01/11
0
0
导师计划--数据结构和算法系列(下)

数据结构和算法系列的课程分为上下两篇文章,上篇文章主要是讲解数据结构,可以戳导师计划--数据结构和算法系列(上)进行了解。本篇文章主要讲解的是基本算法,辅助的语言依旧是。POST的本篇...

call_me_R
04/07
0
0
看完这个你还不会 插入排序 么

前言 由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画来描述常见的数据结构和算法...

MisterBooo
2018/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
16分钟前
9
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
21分钟前
3
0
两款软件

fadetop保护眼睛软件 Snipaste截图软件

伟大源于勇敢的开始
48分钟前
6
0
06.全局锁和表锁

根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是flush tables with read lock(FTW...

scgaopan
今天
7
0
图解安装CentOS8

最近正式发布了CentOS8!迫不及待地准备下载了CentOS8镜像,准备体验下,工作繁忙无暇理会。 今天抽空安装体验下~ 可从CentOS官网下载:https://centos.org/download/ 为了快速可以选择从国...

技术训练营
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部