排序:歸并排序

目錄

歸并排序——有遞歸的:

基本思想:

思路分析:?

代碼分析:??

劃分區間思路:

代碼思路分析:?

歸并排序——有遞歸的:

基本思想:

歸并排序(MERGE-SORT)是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。

將已有序的子序列合并,得到完全有序的序列;即先使 每個子序列內部 有序,再使每個子序列段 間 有序。若將兩個有序表合并成一個有序表,稱為二路歸并。 ?

思路分析:?

而放到排序中,我們歸并的前提是要左右區間有序,而對于一個無序的數組而言左右區間并不是有序的,而要將他變得有序,則可以采取遞歸的方法。

  • 那么,做法便成為了使用遞歸的方法,將序列區間連續的對半劃分,直到不能劃分位置,隨后這些被劃分的區間再進行排序組成一個有序的序列區間,隨后再歸并回去。
  • 而再這些被劃分區間組成一個有序的序列區間其實也會用到歸并的思想
  • 所以本質上就是大區間變成了小區間,數個小區間排列層有序的區間后和另一個相同等級的序列區間再度進行排序,直到變成有序的數組為止。?

代碼分析:??

代碼就是將大區間變小區間,然后小區間的元素進行尾插到新數組內排序,而后新數組的元素拷貝到原來的小區間內

然后小區間在和它同級的小區間進行相同的操作變成一個更大的有序的區間,然后再和其他更大的區間進行相同的操作,最后的最后變成一個有序的數組并拷貝回原來的數組空間?

劃分區間思路:

代碼思路分析:?


?

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

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

相關文章

2023 CCF中國軟件大會(CCF ChinaSoft)“軟件工程教育”論壇 成功召開

2023年12月1日,2023年度CCF中國軟件大會“軟件工程教育”論壇成功召開。 ? 自去年來大模型技術的出現以及在各個領域的應用,對相關的學科和行業產生了深刻的影響。軟件工程首當其沖,以ChatGpt和CopilotX等為代表的智能化開發工具可以幫助軟…

2024年網絡安全競賽-數字取證調查attack817

? 數字取證調查 (一)拓撲圖 服務器場景:FTPServer20221010(關閉鏈接) 服務器場景操作系統:未知 FTP用戶名:attack817密碼:attack817 分析attack.pcapng數據包文件,通過分析數據包attack.pcapng找出惡意用戶第一次訪問HTTP服務的數據包是第幾號,將該號數作為Flag值…

倪海廈:教你正確煮中藥,發揮最大藥效

同樣的一個湯劑,我開給你,你如果煮的方法不對,吃下去效果就沒那么好。 所以,湯,取它的迅捷,速度很快,煮湯的時候還有技巧,你喝湯料的時候,你到底是喝它的氣,…

RTMP流設置超時時間失敗

使用FFmpeg(版本是5.0.3)將rtmp流作為輸入,設置超時時間(使用-timeout參數),結果報錯:Cannot open Connection tcp://XXX:1935?listen&listen_timeout 通過./ffmpeg -help full 命令查看FFmpeg幫助&am…

Evidently:一個神奇的Python庫,機器學習必備!

Evidently 是一個面向數據科學家和機器學習工程師的開源 Python 庫。它有助于評估、測試和監控從驗證到生產的數據和 ML 模型。它適用于表格、文本數據和嵌入。 簡介 Evidently 是一個開源的 Python 工具,旨在幫助構建對機器學習模型的監控,以確保它們的…

2024年網絡安全競賽-A模塊任務解析報告單(詳細每一步)

2024年網絡安全競賽-A模塊任務 一、項目和任務描述: 假定你是某企業的網絡安全工程師,對于企業的服務器系統,根據任務要求確保各服務正常運行,并通過綜合運用登錄和密碼策略、流量完整性保護策略、事件監控策略、防火墻策略等多種安全策略來提升服務器系統的網絡安全防御能…

MyBatis參數獲取和傳遞

1、參數獲取方式 MyBatis可以通過以下兩種方式獲取參數值: #{變量名} 本質是占位符賦值 ${變量名} 本質是字符串拼接,如果拼接的是字符串類型或日期類型,則需要手動添加單引號 2、參數獲取的幾種情況: 2.1 mapper接口方法的參數為單個字…

判斷一個Series序列的值是否為單調遞減Series.is_monotonic_decreasing

【小白從小學Python、C、Java】 【計算機等考500強證書考研】 【Python-數據分析】 判斷一個Series序列中 各值是否單調遞減 s.is_monotonic_decreasing [太陽]選擇題 以下代碼的輸出結果中正確的是? import pandas as pd s1 pd.Series([3,2,1]) s2 pd.Series([3,2,4]) pri…

【代碼隨想錄】算法訓練計劃41

dp 1、343. 整數拆分 題目: 給定一個正整數 n ,將其拆分為 k 個 正整數 的和( k > 2 ),并使這些整數的乘積最大化。 返回 你可以獲得的最大乘積 。 輸入: n 10 輸出: 36 解釋: 10 3 3 4, 3 3 4 36。 思路…

Kotlin Flow 操作符

前言 Kotlin 擁有函數式編程的能力,使用Kotlin開發,可以簡化開發代碼,層次清晰,利于閱讀。 然而Kotlin擁有操作符很多,其中就包括了flow。Kotlin Flow 如此受歡迎大部分歸功于其豐富、簡潔的操作符,巧妙使…

【矩陣論】Chapter 7—Hermite矩陣與正定矩陣知識點總結復習

文章目錄 1 Hermite矩陣2 Hermite二次型3 Hermite正定(非負定矩陣)4 矩陣不等式 1 Hermite矩陣 定義 設 A A A為 n n n階方陣,如果稱 A A A為Hermite矩陣,則需滿足 A H A A^HA AHA,其中 A H A^H AH表示 A A A的共軛轉…

數據結構入門————樹(C語言/零基礎/小白/新手+模擬實現+例題講解)

目錄 1. 樹的概念及其結構 1.1 樹的概念: 1.2 樹的相關概念: 1.3 樹的表示方法: ?編輯 1.4 樹的應用: 2. 二叉樹的概念及其結構 2.1 概念: 2.2 特點: 2.3 特殊二叉樹: 2.4 二叉樹的性質&#xf…

【深度學習】注意力機制(一)

本文介紹一些注意力機制的實現,包括SE/ECA/GE/A2-Net/GC/CBAM。 目錄 一、SE(Squeeze-and-Excitation) 二、ECA(Efficient Channel Attention) 三、GE(Gather-Excite) 四、A2-Net(Double A…

二維碼智慧門牌管理系統升級解決方案:數字鑒權

文章目錄 前言一、數字鑒權的核心機制二、數字鑒權的意義和應用 前言 隨著科技的飛速發展,我們的生活逐漸進入數字化時代。在這個數字化的過程中,數據的安全性和門牌信息的保障變得至關重要。今天,我們要介紹的是二維碼智慧門牌管理系統升級…

【論文復現】zoedepth踩坑

注意模型IO: 保證輸入、輸出精度、類型與復現目標一致。 模型推理的代碼 from torchvision import transforms def image_to_tensor(img_path, unsqueezeTrue):rgb transforms.ToTensor()(Image.open(img_path))if unsqueeze:rgb rgb.unsqueeze(0)return rgbdef…

dockerdesktop 導出鏡像,導入鏡像

總體思路 備份時 容器 > 鏡像 > 本地文件 恢復時 本地文件 > 鏡像 > 容器 備份步驟 首先,把容器生成為鏡像 docker commit [容器名稱] [鏡像名稱] 示例 docker commit nginx mynginx然后,把鏡像備份為本地文件,如果使用的是Docker Desktop,打包備份的文件會自動存…

機器學習筆記 - 基于C# + .net framework 4.8的ONNX Runtime進行分類推理

該示例是從官方抄的,演示了如何使用 Onnx Runtime C# API 運行預訓練的 ResNet50 v2 ONNX 模型。 我這里的環境基于.net framework 4.8的一個winform項目,主要依賴下面版本的相關庫。 Microsoft.Bcl.Numerics.8.0.0 Microsoft.ML.OnnxRuntime.Gpu.1.16.3 SixLabors.ImageShar…

MyString:string類的模擬實現 1

MyString:string類的模擬實現 前言: 為了區分標準庫中的string,避免編譯沖突,使用命名空間 MyString。 namespace MyString {class string{private:char* _str;size_t _size;size_t _capacity;const static size_t npos -1;// C標…

2023年 - 我的程序員之旅和成長故事

2023年 - 我的程序員之旅和成長故事 🔥 1.前言 大家好,我是Leo哥🫣🫣🫣,今天咱們不聊技術,聊聊我自己,聊聊我從2023年年初到現在的一些經歷和故事,我也很愿意我的故事分…

TS學習——快速入門

TypeScript簡介 TypeScript是JavaScript的超集。它對JS進行了擴展,向JS中引入了類型的概念,并添加了許多新的特性。TS代碼需要通過編譯器編譯為JS,然后再交由JS解析器執行。TS完全兼容JS,換言之,任何的JS代碼都可以直…