认知算法(十一)

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

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

一、插入排序

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

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

  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;
    }

}

相关文章
|
3月前
|
程序员
探索编程之美:从逻辑到实践的旅程##
【10月更文挑战第12天】 在当今这个科技飞速发展的时代,编程已经成为了一种基础技能,它不仅是一种技术,更是一种艺术。本文将分享我的编程感悟,从最初的困惑到逐渐掌握编程的逻辑,再到将所学知识应用于实际项目,实现自我价值的提升。正如印度圣雄甘地所说:“你必须成为你希望在世界上看到的改变。”通过不懈努力和持续学习,我逐渐理解了编程的本质,并在实践中不断提升自己。 ##
35 0
|
机器学习/深度学习 人工智能 运维
异常检测:探索数据深层次背后的奥秘《下篇》
异常检测:探索数据深层次背后的奥秘《下篇》
异常检测:探索数据深层次背后的奥秘《下篇》
|
8月前
|
存储 C++ 容器
[C++ 从入门到精通] 5.迭代器精彩演绎、失效分析及弥补、实战
[C++ 从入门到精通] 5.迭代器精彩演绎、失效分析及弥补、实战
59 0
|
机器学习/深度学习 人工智能 机器人
强化学习从基础到进阶--案例与实践含面试必知必答[9]:稀疏奖励、reward shaping、curiosity、分层强化学习HRL
强化学习从基础到进阶--案例与实践含面试必知必答[9]:稀疏奖励、reward shaping、curiosity、分层强化学习HRL
强化学习从基础到进阶--案例与实践含面试必知必答[9]:稀疏奖励、reward shaping、curiosity、分层强化学习HRL
|
算法
算法学习 | 从几个有趣的故事说起,聊聊里面的算法
今天分享读了的故事、研究了的解题过程以及总结的一些算法知识点和经验。
419 1
|
消息中间件 Java 关系型数据库
pmq学习一-一些典型的使用和套路
pmq是信也科技开源的一款消息中间件,虽然没有RocketMQ和Kafka出名,但是里面的代码还是有值得我们学习的地方的。 pmq的源码里面很多套路还是值得学习的,说实话,这些都是可以用到项目里面的。下面的代码来源于pmq。 首先安装好maven、mysql,对下载下拉的包进行打包: 如果遇到时区问题,则可以调整时区问题。 1.MqBootstrapListener 观察者模式的使用
229 0
pmq学习一-一些典型的使用和套路
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
294 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
|
算法
重温算法,加深理解
算法在开发中的地位我们都很清楚,但是呢实际上项目里用到的算法并不是很多,虽然不是必须但是我们还是要懂算法,理解算法,运用算法。前几年肝了很多算法,但是这玩意不经常练习就会忘记,今天就重新把算法捡起来吧。
99 0
重温算法,加深理解
|
算法 数据可视化
ML之MaL: 流形学习MaL的概念认知、算法分类、案例应用、代码实现之详细攻略
ML之MaL: 流形学习MaL的概念认知、算法分类、案例应用、代码实现之详细攻略
|
机器学习/深度学习 算法
机器学习--1. 疑惑及个人见解
最近一段时间,在学习机器学习,学习过程中遇到了一些疑惑,再次记录下来,一方面梳理自己的思路,另一方面给大家分享避免踩坑,欢迎argue。。。
277 0