檢測(cè)到您已登錄華為云國(guó)際站賬號(hào),為了您更好的體驗(yàn),建議您訪問(wèn)國(guó)際站服務(wù)網(wǎng)站 http://m.cqfng.cn/intl/zh-cn
不再顯示此消息
經(jīng)典排序算法 – 插入排序Insertion sort 插入排序就是每一步都將一個(gè)待排數(shù)據(jù)按其大小插入到已經(jīng)排序的數(shù)據(jù)中的適當(dāng)位置,直到全部插入完畢。
部分有序數(shù)據(jù)集:如果數(shù)據(jù)集已經(jīng)部分有序(即元素接近它們的最終位置),希爾排序可以利用這一點(diǎn)來(lái)更快地完成排序。因?yàn)橄?span id="ykasses" class='cur'>排序通過(guò)引入間隔(gap)來(lái)允許元素在更遠(yuǎn)的距離上進(jìn)行交換,這有助于減少數(shù)據(jù)移動(dòng)的次數(shù),從而加速排序過(guò)程。
數(shù)據(jù)治理框架 數(shù)據(jù)治理框架制定如下: 圖1 數(shù)據(jù)治理框架 父主題: 數(shù)據(jù)治理框架
表1 MySQL連接參數(shù) 參數(shù)名 說(shuō)明 取值樣例 名稱 輸入便于記憶和區(qū)分的連接名稱。 mysqllink 數(shù)據(jù)庫(kù)服務(wù)器 MySQL數(shù)據(jù)庫(kù)的IP地址或域名。 - 端口 MySQL數(shù)據(jù)庫(kù)的端口。 3306 數(shù)據(jù)庫(kù)名稱 MySQL數(shù)據(jù)庫(kù)的名稱。
將排序結(jié)果用limit分頁(yè),每頁(yè)兩行數(shù)據(jù)。
選擇排序 一趟遍歷記錄最小的數(shù),放在第一個(gè)位置 在一趟遍歷記錄剩余列表中最小的數(shù),繼續(xù)放置 … 代碼實(shí)現(xiàn) # -*- coding: utf-8 -*- # @File : select_sort_demo.py # @Date : 2018-06-11 import
一個(gè)數(shù)列{20,40,30,10,60,50}排序過(guò)程如下圖: 實(shí)現(xiàn): public class BubbleSort { /*冒泡排序: * 比較前后兩個(gè)相鄰的數(shù)據(jù),如果前面的數(shù)據(jù)大于后面的數(shù)據(jù),就將兩個(gè)數(shù)據(jù)作交換 *遍歷一遍之后,就將最大的數(shù)據(jù)沉到了最后面 * */
三種方法:數(shù)據(jù)庫(kù)排序(對(duì)數(shù)據(jù)庫(kù)設(shè)備要求較高)分治法(常見(jiàn)思路)位圖法(Bitmap)方法概要數(shù)據(jù)庫(kù)排序(對(duì)數(shù)據(jù)庫(kù)設(shè)備要求較高)操作:將數(shù)據(jù)全部導(dǎo)入數(shù)據(jù)庫(kù),建立索引,數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行排序,提取出數(shù)據(jù)。特點(diǎn):操作簡(jiǎn)單, 運(yùn)算速度較慢,對(duì)數(shù)據(jù)庫(kù)設(shè)備要求較高。
賬號(hào)權(quán)限要求 當(dāng)使用DRS將其他云MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)遷移到華為云云數(shù)據(jù)庫(kù)TaurusDB實(shí)例時(shí),在不同遷移類型的情況下,對(duì)源數(shù)據(jù)庫(kù)的賬號(hào)權(quán)限要求如下: 表1 遷移賬號(hào)權(quán)限 遷移類型 全量遷移 全量+增量遷移 源數(shù)據(jù)庫(kù)(MySQL) SELECT、SHOW VIEW、EVENT。
使用場(chǎng)景 當(dāng)數(shù)據(jù)基本有序時(shí),采用插入排序可以明顯減少數(shù)據(jù)交換和數(shù)據(jù)移動(dòng)次數(shù),進(jìn)而提升排序效率。
1.插入排序 插入排序我們介紹直接插入排序和希爾排序(縮小增量排序)。基本思想:每次將一個(gè)待排序的元素按其關(guān)鍵字的大小插入到前面已排好序的文件的適當(dāng)位置中,直到所有的元素插入完為止。
入門(mén)指導(dǎo) 云數(shù)據(jù)庫(kù) RDS for MySQL 入門(mén) 100%兼容原生MySQL,穩(wěn)定可靠,高性能,智能運(yùn)維,高等級(jí)安全保障,即開(kāi)即用,彈性伸縮 購(gòu)買 控制臺(tái) 文檔 創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例 RDS for MySQL支持“包年/包月”和“按需計(jì)費(fèi)”購(gòu)買,您可以根據(jù)業(yè)務(wù)需要定制相應(yīng)計(jì)算能力和存儲(chǔ)空間的云數(shù)據(jù)庫(kù)
1.交換排序 交換排序我們介紹冒泡排序和快速排序(劃分交換排序),核心思想就是通過(guò)元素兩兩比較,發(fā)現(xiàn)反序時(shí)進(jìn)行交換,直到所有元素都沒(méi)有反序?yàn)橹埂?1.1 冒泡排序 算法思想: 通過(guò)相鄰元素之間的比較和交換來(lái)完成。冒泡排序從后往前,進(jìn)行相鄰元素的兩兩比較和交換。
三、算法分析選擇排序是一種原址排序算法,即在排序過(guò)程中直接修改原始列表,不需要額外的存儲(chǔ)空間。選擇排序的時(shí)間復(fù)雜度為O(n^2),其中n是待排序序列的長(zhǎng)度。雖然選擇排序的時(shí)間復(fù)雜度較高,但在小規(guī)模數(shù)據(jù)或部分有序的數(shù)據(jù)集上,其性能仍然可以接受。
用希爾排序法對(duì)一組數(shù)據(jù)由小到大進(jìn)行排序,數(shù)據(jù)分別為69、56、12、136、3、55、46、99、88、25。
1.排序的概念 說(shuō)到排序,我們開(kāi)始之前先來(lái)了解了解排序的一些相關(guān)的概念: 排序:所謂排序,就是將一個(gè)數(shù)據(jù)元素(或記錄)的任意序列,重新排列成一個(gè)按關(guān)鍵字有序的序列。 排序還可以分為內(nèi)部排序和外部排序: 內(nèi)部排序:數(shù)據(jù)元素全部放在內(nèi)存中的排序。
有向圖的拓?fù)湫蛄斜绢}解析AC代碼 三、時(shí)間復(fù)雜度 前言 復(fù)習(xí)acwing算法基礎(chǔ)課的內(nèi)容,本篇為講解數(shù)學(xué)知識(shí):拓?fù)?span id="kuwkkkw" class='cur'>排序,關(guān)于時(shí)間復(fù)雜度:目前博主不太會(huì)計(jì)算,先鴿了,日后一定補(bǔ)上。
“編程復(fù)雜度”很低,很容易寫(xiě)出代碼;2.具有穩(wěn)定性,這里的穩(wěn)定性是指原序列中相同元素的相對(duì)順序仍然保持到排序后的序列,而堆排序、快速排序均不具有穩(wěn)定性。不過(guò),一路、二路歸并排序、不平衡二叉樹(shù)排序的速度均比冒泡排序快,且具有穩(wěn)定性,但速度不及堆排序、快速排序。
登錄本地數(shù)據(jù)庫(kù)。