C语言直接插入排序算法是什么
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章将为大家详细讲解有关C语言直接插入排序算法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.算法模板void InsertSort(Sq
千家信息网最后更新 2025年02月08日C语言直接插入排序算法是什么
这篇文章将为大家详细讲解有关C语言直接插入排序算法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.算法模板
void InsertSort(SqList *L){ int j; for (int i = 2; i <= L->length; i ++ ) { if (L->arr[i] < L->arr[i-1]) { L->arr[0] = L->arr[i]; // 设置哨兵 for (j = i - 1; L->arr[j] > L->arr[0]; j -- ) L->arr[j + 1] = L->arr[j]; L->arr[j + 1] = L->arr[0]; } }}
2.算法介绍
直接插入排序的基本思想是:对于一个长度为n的序列,从第2的元素开始,逐个向之前排好的序列中插入新元素(第1个元素可以视为一个长度为1的有序的子序列),从而得到一个长度为n的有序的序列。
算法的时间复杂度为O(n^2),最好的情况为待排序列本身就是有序的,只需要遍历一遍,时间复杂度为O(n),最坏的情况为逆序,时间复杂度为O(n*n),由于元素之间是逐个进行比较的,直接插入排序是一种稳定的排序算法。
3.实例
#includeusing namespace std;const int N = 100;typedef struct{ int arr[N]; int length;} SqList;void InsertSort(SqList *L){ int j; for (int i = 2; i <= L->length; i ++ ) { if (L->arr[i] < L->arr[i-1]) { L->arr[0] = L->arr[i]; // 设置哨兵 for (j = i - 1; L->arr[j] > L->arr[0]; j -- ) L->arr[j + 1] = L->arr[j]; L->arr[j + 1] = L->arr[0]; } }}int main(){ SqList L; L.arr[1] = 50; L.arr[2] = 10; L.arr[3] = 90; L.arr[4] = 30; L.arr[5] = 70; L.arr[6] = 40; L.arr[7] = 80; L.arr[8] = 60; L.arr[9] = 20; L.length = 9; InsertSort(&L); for (int i = 1; i <= L.length; i ++ ) cout << L.arr[i] << " ";}
关于C语言直接插入排序算法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
算法
排序
元素
序列
复杂
有序
复杂度
时间
长度
语言
内容
哨兵
情况
文章
更多
知识
篇文章
不错
之间
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术移动
网络安全作文800字学生
黑子网络安全知识
浪潮网络技术支持热线电话
台州诚立网络技术有限公司
软件开发工程师属于什么级别
csgo一直连接官方服务器失败怎么回事
云服务器数量安全吗
sql数据库定期删除
深圳市软件开发学费
网络安全个人隐私保护条例
数据库加盐和md5
数据库安全技术书籍下载
在制定网络安全策略时
北京维护网络安全研讨会视频
淄川计划软件开发定制
网络安全oj
美团定位服务器怎样开启
学软件开发语数外重要吗
网络技术普及改变生活方式
微信公众平台服务器是用什么系统
司法局参与网络安全宣传活动
镇江云服务器厂商
巨野软件开发系统服务至上
我的世界网易版幻想乡服务器
流媒体服务器 cdn
数据库查询一周内数据
数据库服务器怎么查询数据
网络安全监测装置 说明书
数据库安全性新技术论文