C语言基本排序算法之插入排序与直接选择排序实现方法

发布时间 - 2026-01-11 03:23:46    点击率:

本文实例讲述了C语言基本排序算法之插入排序与直接选择排序实现方法。分享给大家供大家参考,具体如下:

声明待排序元素类型

/*--------------------------
typedef.h
方便修改待排序元素类型
-------------------------------------*/
#ifndef TYPEDEF_H
#define TYPEDEF_H
typedef int T;
#endif

插入排序:

/*---------------------------------------------------------------------------------------
Insertion_sort.h
直接插入排序
对以数组形式给出的元素排序
时间复杂度为(逆序数)N(N-1)/4 = O(N^2),并且在最坏情形下达到这个值
最好情形下运行N次,最坏情形下运行2+3+…+N
------------------------------------------------------------------------------------------------*/
#ifndef INSERTION_SORT_H
#define INSERTION_SORT_H
#include "typedef.h"
//直接插入排序 
void Insertion_sort(T *a, int n)
{
  for(int i = 1; i != n; ++i)
  {
    T temp = a[i];
    int j = i - 1;
    for(; j >= 0 && temp < a[j]; --j )
      a[j + 1] = a[j];
    a[j + 1] = temp;
  }
}
#endif

直接选择排序:

/*----------------------------------------------
DirectSelection_sort.h
直接选择排序
时间复杂度O(N^2)
--------------------------------------------------------*/
#ifndef DIRECTSELECTION_SORT_H
#define DIRECTSELECTION_SORT_H
#include "typedef.h"
#include "swap.h"
//直接选择法排序
void DirectSelection_sort(T*a, int n)
{
  for(int i = 0; i != n; ++i)
  {
    int k = i;
    for(int j = i; j != n; ++j)
      if(a[j] < a[k]) k = j;
    swap(a[k],a[i]);
  }
}
#endif

希望本文所述对大家C语言程序设计有所帮助。


# C语言  # 排序算法  # 插入排序  # 直接选择排序  # C语言排序算法之选择排序(直接选择排序  # 堆排序)  # 简单了解C语言中直接插入排序与直接选择排序实现  # C语言直接选择排序算法详解  # 最坏  # 情形下  # 给大家  # 所述  # 讲述了  # typedef  # cpp  # ifndef  # define  # TYPEDEF_H  # swap  # Insertion_sort  # pre  # brush  # class  # int  # void  # include  # temp  # amp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251811 】 【 AI营销90571


相关推荐: 如何在云主机上快速搭建多站点网站?  Linux系统命令中tree命令详解  PythonWeb开发入门教程_Flask快速构建Web应用  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel如何与Pusher实现实时通信?(WebSocket示例)  iOS发送验证码倒计时应用  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  重庆市网站制作公司,重庆招聘网站哪个好?  如何在建站之星网店版论坛获取技术支持?  浅谈Javascript中的Label语句  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  教你用AI润色文章,让你的文字表达更专业  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  js实现获取鼠标当前的位置  Android中AutoCompleteTextView自动提示  教你用AI将一段旋律扩展成一首完整的曲子  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  如何快速生成可下载的建站源码工具?  如何获取PHP WAP自助建站系统源码?  如何快速使用云服务器搭建个人网站?  如何续费美橙建站之星域名及服务?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Python文件异常处理策略_健壮性说明【指导】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  免费网站制作appp,免费制作app哪个平台好?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel如何升级到最新版本?(升级指南和步骤)  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  动图在线制作网站有哪些,滑动动图图集怎么做?  Python数据仓库与ETL构建实战_Airflow调度流程详解  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  如何用wdcp快速搭建高效网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Laravel如何使用Vite进行前端资源打包?(配置示例)  长沙企业网站制作哪家好,长沙水业集团官方网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何快速搭建FTP站点实现文件共享?  如何在服务器上三步完成建站并提升流量?  如何在IIS中配置站点IP、端口及主机头?