博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构学习(十三)——插入排序
阅读量:5883 次
发布时间:2019-06-19

本文共 619 字,大约阅读时间需要 2 分钟。

hot3.png

插入排序是简单排序的一种,其主要是对少量数据进行排序处理,大量数据时没有优势。插入排序就像打扑克,摸起一张牌看到然后按照手里的牌的顺序位置将此牌再插入到适当位置。是一种先确定数据,再确定位置的排序算法。与选择排序算法不同。

下面的代码实现了插入排序的简单练习。

#include 
#define MAXSIZE 50int *Insert_sort(int *s, int n);int main(void){ int n, i; int s[MAXSIZE+1]; //多1个辅助元素 printf("插入排序练习\n"); printf("输入你想排序的数字个数:"); scanf("%d", &n); getchar(); printf("请依次输入待排序数据\n"); for(i=1; i
插入排序主要由两部分构成,一部分是比较操作,另一部分是移动操作。进行一次比较的工作量大些,移动工作量小些。

它的开销也小,只需要一个备用单元,就是程序中的数组下标0的元素。另外还需要两个辅助变量就是排序经常用到的i和j,对存储器资源比较紧张的嵌入式系统是适合的。

另外,插入排序的时间复杂度可以看出来与数据元素的多少成正比。其时间复杂度为O(n^2)。插入排序支持静态排序,也支持动态排序,就跟打扑克摸牌一样。

转载于:https://my.oschina.net/u/1587304/blog/399881

你可能感兴趣的文章
Zeppelin的入门使用系列之使用Zeppelin运行shell命令(二)
查看>>
form表单下的button按钮会自动提交表单的问题
查看>>
那些年追过的......写过的技术博客
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
CSS魔法堂:Transition就这么好玩
查看>>
解决win7远程桌面连接时发生身份验证错误的方法
查看>>
C/C++ 多线程机制
查看>>
python mysql Connect Pool mysql连接池 (201
查看>>
Boost在vs2010下的配置
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
20款绝佳的HTML5应用程序示例
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>
如何使用Core Text计算一段文本绘制在屏幕上之后的高度
查看>>
==和equals区别
查看>>
2010技术应用计划
查看>>
XML 节点类型
查看>>
驯服 Tiger: 并发集合 超越 Map、Collection、List 和 Set
查看>>
Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现...
查看>>
LeetCode – LRU Cache (Java)
查看>>