🎥屿小夏:个人主页🔥个人专栏:算法的奇妙🌄莫道桑榆晚,为霞尚满天!文章目录📑前言🌤️排序☁️什么是排序?☁️为什么要有排序?🌤️直接插入排序☁️直接插入排序的思想☁️直接插入排序具体操作步骤☁️直接插入排序代码实现🌤️希尔排序☁️希尔排序的由来☁️希尔排序的思想☁️希尔排序代码实现☁️希尔排序特性总结🌤️全篇总结📑前言什么是排序?为什么要有排序?希尔排序是什么样子?本期我们将围绕这些问题来展开,探讨排序的妙处和揭开插入排序的面纱。🌤️排序☁️什么是排序?排序就是将一组元素(数据)按照一种我们想要的排列规则或者顺序进行重新排列的一个过程。排序的应用场景大多都是,将一组数据按我们所需要的目的排列好
=========================================================================相关代码gitee自取:C语言学习日记:加油努力(gitee.com) =========================================================================接上期:【数据结构初阶】八、非线性表里的二叉树(二叉树的实现--C语言链式结构)-CSDN博客 ======================================================================
目录前言复杂度总结预备代码插入排序1.直接插入排序:时间复杂度O(N^2)\空间复杂度O(1)复杂度(空间/时间):2.希尔排序:时间复杂度O(N^1.3~N^2)空间复杂度为O(1)复杂度(空间/时间):选择排序1.直接选择排序时间复杂度O(N^2)/空间复杂度O(1)复杂度(空间/时间):2.堆排序:时间复杂度O(N*logN)/空间复杂度O(1)复杂度(空间/时间):交换排序1.冒泡排序:时间复杂度O(N^2)/空间复杂度O(1)复杂度(空间/时间):2.快速排序2.1.hoare版本时间复杂度为O(n)/空间复杂度为O(1)编辑2.2.挖坑法相比hoare本质上并没有简化复杂度编辑
个人主页:平行线也会相交欢迎点赞👍收藏✨留言✉加关注💓本文由平行线也会相交原创收录于专栏【数据结构初阶(C实现)】本篇主要讲解八大排序算法中的三种排序,分别是:插入排序、希尔排序、选择排序。目录插入排序插入排序代码希尔排序希尔排序的时间复杂度希尔排序总代码选择排序直接选择排序代码直接选择排序时间复杂度及总结插入排序在我们的日常生活最常见的一个场景就是斗地主,我们在斗地主摸牌的过程中其实就是利用插入排序来整理我们摸到的牌,按照从大到小或者从小到大的进行比较,大的放左边或者小的放左边。斗地主摸牌流程是这样的:最初我们拿到第一张牌的时候,我们把这一张牌当成一个有序序列,当我们拿到第二张牌的时候,我们
📙作者简介: 清水加冰,目前大二在读,正在学习C/C++、Python、操作系统、数据库等。📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。欢迎点赞👍收藏⭐留言📝如有错误还望各路大佬指正!✨每一次努力都是一种收获,每一次坚持都是一种成长✨ 前言 希尔排序,作为一种高效的排序算法,更是在排序算法这个舞台上展现出了自己独特的魅力,听这个名字就感觉这个排序不简单,本篇文章我将带领大家深入了解希尔排序。1.排序算法 在数据世界中,排序算法是一种强大的工具,能够将混乱无序的数据变得井然有序,排序算法有很多种,最常见
目录1冒泡排序(BubbleSort)2插入排序(InsertionSort)3选择排序(SelectionSort)4.快速排序(QuickSort)5.归并排序(MergeSort)6堆排序(HeapSort)7计数排序(CountingSort)8基数排序(RadixSort)9希尔排序(ShellSort)10桶排序 1冒泡排序(BubbleSort) 冒泡排序是一种基本的排序算法,其核心思想是多次遍历待排序的元素,比较相邻的两个元素,如果它们的顺序不正确,则交换它们,直到整个数组按照指定顺序排列。defbubble_sort(arr):n=len(arr)foriinr
一、插入排序的基本思想希尔排序是插入排序的一种,在介绍希尔排序之前,先介绍一下插入排序的思想。插入排序就是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。与扑克牌的插入的类似。二、直接插入排序直接插入排序是实现希尔排序的基础,本人的理解其实希尔排序就是直接插入排序的升级版本,我们先介绍和实现以下直接插入排序,为实现希尔排序打下基础。2.1思想当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],
💐🌸🌷🍀🌹🌻🌺🍁🍃🍂🌿🍄🍝🍛🍤📃个人主页:阿然成长日记👈点击可跳转📆个人专栏:🔹数据结构与算法🔹C语言进阶🚩不能则学,不知则问,耻于问人,决无长进🍭🍯🍎🍏🍊🍋🍒🍇🍉🍓🍑🍈🍌🍐🍍文章目录一、希尔定义:二、希尔排序原理三、希尔排序原理图1.gap为3:2.gap为2:3.gap为1:四、细节剖析第1步:`i=0`;a[tmp]>a[end]不做交换第2步:`i=1`;a[tmp]>a[end]不做交换第3步:`i=2`;a[tmp]第3步:`i=2`;a[tmp]>a[end]不交换第5步:`i=3`;a[tmp]>a[end]不交换第6步:`i=3`;a[tmp]>a[end]不交换停止五、代码
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》🌝每一个不曾起舞的日子,都是对生命的辜负目录前言1.直接插入排序2.希尔排序3.直接选择排序4.堆排序前言本篇文章博主将介绍排序算法中的插入排序:直接插入排序、希尔排序和选择排序:选择排序、堆排序,并进行代码实现,感兴趣的同学给博主点点关注哦🌝欢迎大家📂收藏📂以便未来做题时可以快速找到思路,巧妙的方法可以事半功倍。=========================================================================GITEE相关代码:🌟fanf
目录一,排序的概念二,直接插入排序1,基本思想2,基本思路3,思路实现三,希尔排序1,希尔排序的特性总结:2,思路实现:一,排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作;稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间