当前位置: 首页 > news >正文

排序之插入排序(图解)

插入排序就像我们打扑克一样,在理排的时候,如果有新牌,就会一个一个比较,看谁的大。

 代码如下

#include<stdio.h>
#include<assert.h>
void Swap(int* px, int* py)//交换数据
{
	int tmp = *px;
	*px = *py;
	*py = tmp;
}
MyPrint(int* a, int sz)//打印数组
{
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", a[i]);
	}
	printf("\n");
}
void iSort(int* a,int size)
{
	assert(a);//断言,防止数组为空
	for (int i = 0; i < size-1; i++)
	{
		int end = i;
		int x = a[end + 1];//记录准备插入的数
		while (end >= 0)//与前面一个数进行比较
		{
			if (a[end] > x)
			{
				Swap(&a[end], &a[end + 1]);//如果大的话就交换
				end--;
			}
			else
			{
				break;//否则就退出循环
			}
		}
	}
 }
int main()
{
	int sz = sizeof(arr) / sizeof(arr[1]);
	int arr[] = { 3,1,2,6,5,8,4,11,10,9 };
	MyPrint(arr, sz);
	iSort(arr, sz);
	MyPrint(arr, sz);
	return 0;
}

 

相关文章:

  • 排序之希尔排序(图解)
  • 排序之选择排序(图解)
  • C++之默认参数详解
  • 力扣(两数相加)C语言
  • 力扣(反转二叉树)C语言
  • 力扣-平衡二叉树(C语言)
  • 力扣—对称二叉树(C语言)
  • 牛客网—二叉树遍历(C语言)
  • C++之引用详解
  • c++之模板初阶
  • C++之string源代码详解
  • 电话号码组合(力扣)
  • vim的基本用法
  • 进程的概念(详解)
  • Linux 基础知识详解
  • 自己简单写的 事件订阅机制
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • create-react-app做的留言板
  • css属性的继承、初识值、计算值、当前值、应用值
  • extract-text-webpack-plugin用法
  • JS笔记四:作用域、变量(函数)提升
  • leetcode386. Lexicographical Numbers
  • node入门
  • Python socket服务器端、客户端传送信息
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Vue.js-Day01
  • 大数据与云计算学习:数据分析(二)
  • 动态魔术使用DBMS_SQL
  • 复习Javascript专题(四):js中的深浅拷贝
  • 看域名解析域名安全对SEO的影响
  • 模型微调
  • 时间复杂度与空间复杂度分析
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 想写好前端,先练好内功
  • 因为阿里,他们成了“杭漂”
  • 应用生命周期终极 DevOps 工具包
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • scrapy中间件源码分析及常用中间件大全
  • Spring第一个helloWorld
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​第20课 在Android Native开发中加入新的C++类
  • (42)STM32——LCD显示屏实验笔记
  • (js)循环条件满足时终止循环
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (poj1.2.1)1970(筛选法模拟)
  • (WSI分类)WSI分类文献小综述 2024
  • (待修改)PyG安装步骤
  • (翻译)terry crowley: 写给程序员
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十三)Maven插件解析运行机制