认知算法(十一)

简介: 认知算法(十一),一起来学习吧。

嗨,欢迎来到异星球,我是小怪同志。这篇文章主要讲认识算法,请一起学习吧。

一、插入排序

插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。

  1. 算法步骤

将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

二、代码实现

1.c语言
void insertion_sort(int arr[], int len){

    int i,j,key;
    for (i=1;i<len;i++){
            key = arr[i];
            j=i-1;
            while((j>=0) && (arr[j]>key)) {
                    arr[j+1] = arr[j];
                    j--;
            }
            arr[j+1] = key;
    }

}
2.c++
void insertion_sort(int arr[],int len){

    for(int i=1;i<len;i++){
            int key=arr[i];
            int j=i-1;
            while((j>=0) && (key<arr[j])){
                    arr[j+1]=arr[j];
                    j--;
            }
            arr[j+1]=key;
    }

}

相关文章
剑指 Offer 34:二叉树中和为某一值的路径
剑指 Offer 34:二叉树中和为某一值的路径
62 0
|
JavaScript 前端开发
js事件绑定的几种方式
js事件绑定的几种方式
260 0
|
10月前
|
网络协议 网络安全 Docker
将Certbot/ACME.sh自动化申请的证书自动部署到阿里云CDN
本文介绍了阿里云 CDN SSL 证书自动更新工具,定期检查证书有效期,使用Let's Encrypt 等工具签发的证书自动更新至阿里云 CDN,支持 Docker 及 .NET 8 部署,简化证书管理流程。
|
Java Linux 开发工具
Azkaban【部署 01】Linux环境 CentOS Linux release 7.5.1804安装配置azkaban-3.70.0编译阶段(附安装包及gradle-4.6资源)
【2月更文挑战第4天】Linux环境 CentOS Linux release 7.5.1804安装配置azkaban-3.70.0编译阶段(附安装包及gradle-4.6资源)
329 1
|
Kubernetes 应用服务中间件 nginx
docker镜像编译与docker-compose部署与编排
docker镜像编译与docker-compose部署与编排
284 0
|
算法 数据安全/隐私保护 流计算
信道划分&介质访问控制&ALOHA协议&CSMA协议&CSMA/CD协议&轮询访问MAC协议
信道划分&介质访问控制&ALOHA协议&CSMA协议&CSMA/CD协议&轮询访问MAC协议
352 1
|
Linux Shell
Linux指令&权限知识点总结(2)
Linux指令&权限知识点总结(2)
101 0
|
消息中间件 网络安全 RocketMQ
一键体验云消息队列 RocketMQ :创建专有网络VPC操作指引
本文章为创建专用网络VPC操作指引。在领取RocketMQ免费试用时,会有创建VPC的过程,本次一键体验活动免费实例的地域需开通在华东-杭州部分region的可用区,可选择的可用区为(F~K)。
4122 4
|
Linux Shell Windows
Shell - line 2: $‘\r‘: command not found
拷贝脚本提交后报错 line 2: $'\r': command not found,但是这是别的同学可以运行后发给我的,随后开始排查。安装 dos2unix 需要使用 yum。安装 yum 需要使用 brew。
647 0
Shell - line 2: $‘\r‘: command not found
|
DataWorks
《DataWorks高级功能场景化案例分享》电子版地址
DataWorks高级功能场景化案例分享
129 0
《DataWorks高级功能场景化案例分享》电子版地址