【數據結構】冒泡排序、直接插入排序、希爾排序詳解!

文章目錄

      • 1. 冒泡排序🍎
      • 2. 直接插入排序🍎
      • 3. 希爾排序(縮小增量排序)🍎

1. 冒泡排序🍎

  • 🐧 基本思想:
    比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
    大的數據往下沉(可以理解為:大的數據往最右邊放),小的數據往上冒,每次都能把一個未排好序列中一個最大的數據放到其合適的位置。
    所以冒泡排序法是最右邊的數據從右往左變得慢慢有序(每次都能當前未排序的最大數據到當前末尾正確位置)

在這里插入圖片描述

  • 🐧 時間復雜度:O( n 2 n^2 n2),最好的情況,待排序的數據幾乎有序( O(n) )
  • 🐧 穩定新:穩定的

在這里插入圖片描述



2. 直接插入排序🍎

  • 🐧 基本思想:
    在這里插入圖片描述

  • 🐧 時間復雜度:O( n 2 n^2 n2),最好的情況( O(n) )
    注意:?直接插入排序的效率是比冒泡排序的效率高的。

  • 🐧 以下代碼分析:
    注意?:直接插入排序,是把一個數據插入到一個有序的序列中。

在這里插入圖片描述


3. 希爾排序(縮小增量排序)🍎

  • 🐧 基本思想:🍳簡單來說就兩個步驟
    ① 先進行預排序
    在這里插入圖片描述

    ② 再進行直接插入排序


  • 🐧 思路的過程如下:🍳

在這里插入圖片描述

  • 🐧 時間復雜度:O(n^1.3),注意它的效率是低于 O(n l o g 2 n log_2n log2?n ) 級別排序算法的。

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18720.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18720.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18720.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在編程中百分號表示什么:深度解析其多重角色與應用

在編程中百分號表示什么:深度解析其多重角色與應用 在編程的廣闊領域中,百分號(%)這一看似簡單的符號,實則承載著多重含義與功能。它既是數學運算的得力助手,又是字符串格式化的關鍵工具,甚至在…

Midjourney繪畫關鍵詞參數匯總(一)

在數字藝術和創意設計領域,參數化繪畫技術正日益受到關注。Midjourney作為一家領先的藝術技術公司,推出了一系列繪畫關鍵詞參數,為藝術家和設計師們提供了全新的創作工具。本文將介紹Midjourney繪畫關鍵詞參數的匯總,探索其在數字…

適合能源企業的文檔安全外發系統應該是什么樣的?

能源企業是市場經濟中的重要組成,也是社會可持續長遠發展的關鍵組成之一,能源行業在開拓新能源業務線、提升產能的日常經營中,也需要與外部合作伙伴、客戶間進行密切的業務往來,文檔可能涉及多個領域多個類型。 能源供應合同&…

Vue3 之 動態組件和KeepAlive組件

一、動態組件 1、簡介 ? 在某些業務場景下,頁面的某模塊具有多個組件但在同一時間只顯示一個,需要在多個組件之間進行頻繁的切換,如:tab切換等場景。除了可以使用v-if、v-show根據不同條件顯示不同組件之外,還可以通…

深入理解模型驅動測試:優點、挑戰與應用場景

本文翻譯自:Understanding Model-Based Testing: Benefits, Challenges, and Use Cases 原文作者:Qt Group質量保證市場營銷主管Sebastian Polzin 審校:Jinjing Li 對于那些尋求系統化和條理化測試方法的測試工程師而言,模型驅動…

ROS2 Topics和Services

本文主要介紹ROS的Topics概念,如何創建Publisher和Subscriber,通過Topic在ROS程序間通信;介紹ROS的Services概念,如何創建Client和Server并建立通信。 更多內容,訪問專欄目錄獲取實時更新。 ROS Topics Topics可以被視…

做電商,錯過了2020年的抖音!那2024一定要選擇視頻號小店!

哈嘍~我是電商月月 電商老板們集合了,問大家一個問題: 如果能讓你回到三四年前,抖音才步入大眾視野,這時候讓你去做抖音小店,你愿意嗎? 我敢相信!很多,錯過當年抖音紅利的商家,一…

計算機三級 網絡技術

一、邊界網關協議BGP BGP是邊界網關協議,是外部而不是內部網關協議(是不同自治系統的路由器之間使用的協議)一個BGP發言人使用TCP(不是UDP)與其自治系統的BGP發言人交換路由信息。BGP協議交換路由由信息的節點數是以自…

Docker HTTPS api V2 Manifest V 2, Schema 2 下的免裝docker下載鏡像的方法

目錄 前言 下載鏡像代碼 使用方法 原代碼中無法適配 Schema 2 的原因淺析 如何解決 相對原代碼改動的東西 前言 本文提供代碼主要是基于 https://github.com/NotGlop/docker-drag 提供的代碼修改的。鏈接中提供的代碼應該是是基于HTTPS api V2 Manifest V 2, Schema 1實…

面試必備:應對 “為什么離職” 的萬能回答

使用PC端的朋友,請將頁面縮小到最小比例,閱讀最佳! 面試官問到你為什么從上一家公司離職時,你會怎么回答?這個問題我覺得很有意思,也很有必要去探討一下。 很多專業人士都會建議你,最好不要直接…

C++---迭代器介紹

迭代器的介紹 使用迭代器需要引用頭文件,但一般的容器都引用了這個頭文件。 這五種迭代器的聲明如下: struct output_iterator_tag { };//輸出迭代器 struct input_iterator_tag{ };//輸入迭代器 struct forward_iterator_tag : public input_iterator_tag {};//向前迭代器 …

基于序列深度學習模型的向量海岸線形狀分類方法 2024.05

本文中提出了一個數據驅動的方法來分類的形狀矢量海岸線,該方法利用基于序列的深度學習算法對海岸線矢量分段進行建模和分類。具體而言,首先將復雜的海岸線劃分為一系列彎曲,并進一步提出了一組不同的特征來描述每個彎曲的形態特征。然后&…

強化學習——學習筆記2

在上一篇文章中對強化學習進行了基本的概述,在此篇文章中將繼續深入強化學習的相關知識。 一、什么是DP、MC、TD? 動態規劃法(DP):動態規劃法離不開一個關鍵詞,拆分 ,就是把求解的問題分解成若…

【JavaScript腳本宇宙】點燃你的Web開發:數據綁定和MV*框架

逐一剖析:JavaScript框架和庫的概述、特點與應用 前言 在當今技術日新月異的時代,JavaScript庫和框架已成為前端開發的重要工具。這篇文章將詳細介紹六種不同的JavaScript庫和框架,幫助讀者了解他們的主要特性、使用示例和適用場景。 歡迎訂…

gif幀數修改怎么操作?一鍵掌握GIF幀數修改技巧!

gif幀數修改怎么操作?在數字化信息爆炸的時代,GIF動圖因其生動有趣的特性而備受廣大網友喜愛。然而,很多時候我們可能會遇到GIF動圖幀數過多或過少,導致動畫效果不盡如人意的情況。那么,如何對GIF動圖的幀數進行修改呢…

探索微軟Edge開發者工具:優化前端開發的藝術與科學

探索微軟Edge開發者工具:優化前端開發的藝術與科學 引言:Edge開發者工具概覽一、基礎操作:步入DevTools的大門1.1 啟動與界面布局1.2 快速導航與定制 二、元素審查與樣式調整2.1 精準元素選取2.2 實時CSS編輯2.3 自動完成與內聯文檔 三、Java…

YOLOv10最詳細全面講解1- 目標檢測-準備自己的數據集(YOLOv5,YOLOv8均適用)

YOLOv10沒想到出來的如此之快,作為一名YOLO的愛好者,以YOLOv5和YOLOv8的經驗,打算出一套從數據集裝備->環境配置->訓練->驗證->目標追蹤全系列教程。請大家多多點贊和收藏!!!YOLOv5和YOLOv8親測…

dubbo復習:(13)把服務劃分為不同的group 和version,只有服務端和客戶端group和version匹配才能通信

一、接口定義 package cn.edu.tju.service;public interface DevelopService {String invoke(String param); }二、兩個版本的實現: package cn.edu.tju.service;import org.apache.dubbo.config.annotation.DubboService;DubboService(group "group1"…

bert模型數據集加載方式

數據集構造 無論是機器學習還是深度學習對于數據集的構造都是十分重要。 現記錄一下PyTorch 的 torch.utils.data.Dataset 類的子類。Dataset 類是PyTorch框架中用于處理數據的基本組件,它允許用戶定義自己的數據集類,以滿足特定任務的需求。 Dataset…

重學英語:輸出的重要性

精通一門外語的四要素:聽,說,讀,寫 輸入:聽,讀 輸出:寫,說 因為輸入是我們可以單獨完成,不需要有人互動,所以我們做得最多 輸出練習做得很少,…