C语言直接插入排序算法是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关C语言直接插入排序算法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.算法模板void InsertSort(Sq
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
广州万易互联网科技有限公司
互联网科技工作委员会主任
中关村互联网 科技集团
科技互联网项目
科技互联网公司装修
北京互联网科技
为想互联网科技
狮子座互联网科技有限公司
青海省互联网新科技
银川新华互联网科技学校地址
互联网系的金融科技公司
智腾互联网科技有限公司
移动互联网科技公司
知域互联网科技有限公司大骗子
阿大互联网科技有限公司
用友工业互联网科技发展
广州千川互联网科技有限公司
互联网科技对化妆品行业
平安好医生打造互联网科技医疗
互联网 科技节活动 微视频大赛
西安纸贵互联网科技有限公司
科技股互联网
互联网科技汛
创业天下互联网科技有限公司
厦门比较好的科技互联网公司
江阴互联网智能科技产品进口
广州新华互联网科技学校电竞方面
山东子淼互联网科技有限公司
保山浩联互联网科技有限公司
黑龙江互联网科技公司