Direct Insertion

2024-06-09 17:38
文章标签 direct insertion

本文主要是介绍Direct Insertion,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

直接插入排序是稳定的排序,时间复杂度为O(n^2)

#include<iostream>
using namespace std;void sorting(int arr[],int n)
{for(int i = 1;i < n;i++){if(arr[i] >= arr[i-1])continue;int current = arr[i];int j;for(j = i-1;j >= 0;j--){if(current >= arr[j])break;}for(int k = i-1;k >= j+1;k--)arr[k+1] = arr[k];arr[j+1] = current;}
}int main()
{int arr[] = {8,7,2,9,4,2,1,0,10,-2,6};int n = sizeof(arr) / sizeof(arr[0]);sorting(arr, n);for(int i = 0;i < n;i++)cout<<arr[i]<<" ";cout<<endl;return 0;
}

更简单的更优化的代码是,边比较边移动,这就不用搞错插入位置了。
<pre name="code" class="cpp">#include<iostream>
using namespace std;void sorting(int arr[],int n)
{for(int i = 1;i < n;i++){int j = i;while(j>0 && arr[j]<arr[j-1]){int temp = arr[j];arr[j] = arr[j-1];arr[j-1] = temp;j--;}}
}int main()
{int arr[] = {8,7,2,9,4,2,1,0,10,-2,6};int n = sizeof(arr) /sizeof(arr[0]);sorting(arr, n);for(int i = 0;i < n;i++)cout<<arr[i]<<" ";cout<<endl;return 0;


 



这篇关于Direct Insertion的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045854

相关文章

Insertion Sort Integer Array Insertion Sort Linked List

Sort Integer Array using Insertion sort. //********************************************************************************************************/* Insertion Sort 原理:就是前面的sort部分全部是相对值,从后面拿一个元素,然后跟

2024.09.04【读书笔记】|如何使用Tombo进行Nanopore Direct RNA-seq(DRS)分析

文章目录 Tombo快速使用介绍模型介绍RNA修饰分析步骤特异性替代碱基检测(推荐)De novo canonical model comparison ONT全长转录组分析步骤疑难解答Minimap2在比对nanopore直接RNA-seq数据时的最佳实践和参数设置有哪些?featureCounts在进行RNA-seq定量分析时,如何选择最合适的参考基因组注释文件?Tombo序列重校正过程

浅谈Buffer I/O 和 Direct I/O

通常来说,文件I/O可以分为两种: Buffer I/ODirect I/O Buffer I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。 在 Linux 的缓存 I/O 机制中,这种访问文件的方式是通过两个系统调用实现的:read() 和 write()。调用read()时,如果 操作系统内核地址空间的页缓存( page cache )

innovus:如何让部分sink长到target insertion delay的长度

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 来自星球提问: 参考命

leetcode 刷题之路 27 Insertion Sort List

Sort a linked list using insertion sort. 利用插入排序对一个链表进行排序。 插入排序是将待排序的序列分为部分,分别为有序的部分和无序的部分,排序时每次从无序的部分取出一个元素插入到有序的部分中合适的位置,初始时,有序部分只有一个元素,该元素自有序。根据这个思想,并为了方便起见,我们创建一个头结点dummyHead存储排序后的链表,初始阶段,该链表中只存储

深入理解DPO(Direct Preference Optimization)算法

目录 1. 什么是DPO?2. Bradley-Terry模型2.1 奖励模型的训练 3. 从PPO到DPO4. DPO的简单实现5. 梯度分析Ref 1. 什么是DPO? 直接偏好优化(Direct Preference Optimization, DPO)是一种不需要强化学习的对齐算法。由于去除了复杂的强化学习算法,DPO 可以通过与有监督微调(SFT)相似的复杂度实现模型对

mq-direct交换机

把消息分发给不同的人,不是所有人都收到 例如 已加入伙伴计划作者,发加入激励的消息,未加入伙伴计划的就发邀请的消息,不同的微服务发送不同的消息 交换机 direct交换机,要指定key,可以同时收到,可以定向收到   步骤 进行交换机绑定,增加key  消费者消息 消息发送了 全部消息 更换key的值,发送蓝色就只收到蓝色

spark-Streaming direct和receiver方式读取的区别

区别: Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据了。 一、基于Receiver的方式 这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实

ICCV2017《Deep Direct Regression for Multi-Oriented Scene Text Detection》阅读笔记

前言 本文是对《Deep Direct Regression for Multi-Oriented Scene Text Detection》论文的简要介绍和细节分析,由于作者没有放出源码,所以本文没有源码解读的部分,有关的复现工作将在下篇博客介绍。 注:编者水平有限,如有谬误,欢迎指正。若要转载,请注明出处,谢谢。 联系方式: 邮箱:yue_zhan@yahoo.com QQ:11563566

直接内存 Direct Memory

不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即读写性能高。 因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。Java的NIO库允许Java程序使用直接内存,用于数据缓冲