
直接插入排序
发布日期:2021-05-07 16:19:00
浏览次数:25
分类:精选文章
本文共 864 字,大约阅读时间需要 2 分钟。
假定排序规则是递增的,直接插入排序的思路就是找到一数,这个数前面(数组首部)的数比它大,从这个数开始往前遍历,只要是比它大的都往后位移,直到比它小的为止,将这个数插入在这里。多次后就完成了直接插入排序。
比如我们定义了一个数组
那么第一次找到的数就是1,从1开始往前(数组首部)遍历,5 > 1,将5放到1的位置上。直到到将2挪到原来3的位置上,将1放在原来2的位置上,就完成了一趟。可以看出,后移的过程中是需要一个额外的变量来保存我们找到的数。
源代码如下:
//// 直接插入排序//// Created by GPH on 14-5-3.// Copyright (c) 2014年 GPH. All rights reserved.//#include结果如图:#include void insertSort(int a[],int length){ int tmp = 0; int i,j; for (i = 1; i < length; i++) { if (a[i] < a[i-1]) { tmp = a[i]; for (j = i-1; tmp < a[j]; j--) { a[j+1] = a[j]; } a[j+1] = tmp; } }}int main(){ int a[10] = {3,2,5,1,6,8,7,9,0,4}; insertSort(a, sizeof(a)/sizeof(a[0])); for (int i = 0; i < 10; i++) { printf("%d ",a[i]); } return 0;}
发表评论
最新留言
很好
[***.229.124.182]2025年04月03日 04时24分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一文了解MXC抹茶交易所币本位合约交易
2021-05-11
MXC抹茶科普:以太坊链上的gas是什么?
2021-05-11
(ಥ_ಥ) VMware中安装Centos
2021-05-11
2021-04-07
2021-05-11
**精准实时采集数据是什么???
2021-05-11
高项论文——论信息系统的文档编制 解答要点
2021-05-11
计算机软考难不难?
2021-05-11
学历重要吗?
2021-05-11
软考需要报班学习吗?
2021-05-11
基于VS的连连看小游戏
2021-05-11
ini配置文件的读写
2021-05-11
21端口匿名登录
2021-05-11
C++ Primer Plus 第八章 函数探幽(二)———函数模板
2021-05-11
C++PrimerPlus 第十五章 友元、异常和其他
2021-05-11
LeetCode 912 排序数组
2021-05-11
LeetCode 63 不同路径
2021-05-11
LeetCode 105 从中序和先序遍历构造二叉树
2021-05-11
map[]和map.at()取值之间的区别
2021-05-11
成功解决升级virtualenv报错问题
2021-05-11
如何使用Linux命令查看端口是否被占用
2021-05-11