首页 > 其他分享 >插入排序

插入排序

时间:2024-04-05 09:56:08浏览次数:14  
标签:小于 int 插入排序 元素 namespace 从左往右

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n+5];
    for(int i = 1;i<=n;i++){
        cin>>a[i];
    }
    int j;
    for(int i = 2;i<=n;i++){
        j = i;
        while(a[j]<a[j-1] && j>1){
            swap(a[j],a[j-1]);
            j--;
        }
    }
    for(int i = 1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}

从左往右,依次比较相邻的两个元素,如果右元素小于左元素,就交换它俩的位置。如果右元素大于左元素,就让左元素再往前取值(j-1),直到

右元素小于左元素。

标签:小于,int,插入排序,元素,namespace,从左往右
From: https://www.cnblogs.com/wangyihang-xh/p/18115497

相关文章

  • 插入排序
    #include<iostream>usingnamespacestd;intmain(){ inta[10]={99,1,2,3,164,5,6,71,8,4}; intmax; for(inti=1;i<10;i++){ for(intj=i;j>0;j--){ if(a[j-1]>a[j]){ swap(a[j],a[j-1]); }else{ break; } } } for(inti=0;i......
  • 【算法】冒泡排序、简单选择排序、基数排序、插入排序、希尔排序
    冒泡排序冒泡排序的核心思想是两两进行对比交换。从索引i=0开始,索引i所对应的值与索引i+1所对应的值进行对比交换。不断进行以上操作,每一轮都会让至少一个数变得符合顺序。packagecom.test;importjava.util.Arrays;publicclassBubbleSort{ publicstaticvoi......
  • 【算法】冒泡、选择和插入排序
    目录1.简介2.冒泡排序2.1步骤2.2C语言编码3.选择排序步骤C语言编码4.插入排序步骤C语言编码1.简介在经典排序算法中排序算法平均时间复杂度最好情况最坏情况空间复杂度排序方式稳定性冒泡排序O(n2)O{\left(n^{2......
  • 插入排序
    插入排序1.解决的问题在已经排好序的序列中,插入一个新元素,让序列依旧保持有序,如优先级队列2.核心知识0个或者1个元素,已经是排好序的交换位置的条件(升序):当前元素比后者大(sequeue[i]>sequeue[i+1])当前元素比前者小(sequeue[i]<sequeue[i-1])2层循环第1层:准......
  • 11--插入排序
    算法描述:从当前位置开始,从后往前找比当前数字小的,插入到这个小的数字的后面,在找的过程中,如果发现一个比当前数字大,同时将这个数字往后挪动,其中从后往前是重点。插入排序的时间复杂度是,特别地,若完全有序则时间复杂度为空间复杂度为,并且它是稳定的。插入排序的特点:越有序越快......
  • 排序算法01 - 插入排序 (C语言)
    原理将a[0]作为哨兵,然后从a[2]开始遍历数组,如果发现前者比后者大,则将后者存入哨兵,再从后向前调整数组元素的位置,最后将哨兵插入即可。图示代码#include<stdio.h>constintN=10010;inta[N];n;voidinsert_sort(inta[]){intj;for(inti=2;i<=n;i++){......
  • 14_学习日志_数据结构_冒泡排序_快速排序_插入排序
    #include<编织有意义的谎言,使我相信闭上眼再睁开眼时的世界是同一个>1.介绍    从后往前或者从前往后开始两两比较元素,使得最小数上浮或者最大数下沉为冒泡排序,快速排序利用分治思想,使得基准数左边都存放相对较小数,右边存放较大数,两边再按照同样的做法重复。插入排序......
  • 选择、冒泡、插入排序——左神数据结构算法Day1学习笔记
    时间复杂度:算法的常数操作数量级的数学表达式中,去除常数的最高阶项,比如aN²+bN+c的时间复杂度就是O(N²)。时间复杂度是数据量大到一定程度时,评价算法优劣的指标。当时间复杂度相同时,分析不同数据样本下的实际运行时间来比较算法的优劣。额外空间复杂度:在执行代码过程中申请的......
  • 147. 对链表进行插入排序(中)
    目录题目题解优化题目给定单个链表的头head,使用插入排序对链表进行排序,并返回排序后链表的头。插入排序算法的步骤:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在......
  • 插入排序分析
    插入排序(升序)复杂度分析可以把插入排序想象成抽扑克牌,从牌堆中每抽一张牌我们就和手牌比较并插入。一般,我们习惯大牌放左边,小牌放右边,那么我们抽牌时从左往右(或从右往左)把抽的牌和手牌对比,找到,放入手牌,这个过程就可以看作时插入排序1.代码实现插入排序代码实现比较简单#in......