花五分鐘口語化過下幾種排序思路

2021-09-26 11:07:06 字數 1579 閱讀 9647

氣泡排序

時間複雜度是o(n^2),

一開始交換的區間是0~n-1,也就是整個資料的整體,然後第乙個數與第二個數進行比較,哪個大哪個就放在後面,然後第二個數和第三個數比較,**這樣依次交換過去,最大的數最終會放在陣列最後的乙個位置。

然後把範圍從0~n-1變為0~n-2,這樣一來第二個數在交換過後,會放在整個資料倒數第二個位置

依次進行交換過程中,把範圍從0~n-1 到 範圍只剩下乙個數的時候,整個陣列就變得有序了

時間複雜度是o(n^2),

一開始從0~n-1資料上選擇乙個最小值把它放到第零個位置上;

然後從1~n-1上選擇乙個最小值放到第一位置上;

這樣依次從0~n-1到1~n-1,2~n-1……直到最後只包含乙個數的時候,整個數就變得有序了

時間複雜度是o(n^2),

首先是位置1的數和位置0的數進行比較,如果位置1的數比位置0的數小,就比較兩者的位置;

接著是位置2的數和位置1的數進行比較,……,排完後如果位置1的數比位置0還小……;

也就是說位置k的數假設值為b依次和前面位置的數進行比較,如果小,就依次和前面的數進行交換的過程,直到前面的數一直小於等於b,那麼b就插入當前位置。

那麼我們依次從一位置到n-1位置的所有數都進行這樣的比較,進行插入的過程,整個數就變得有序了

歸併排序

規定數中的每一組長度為一的有序區間

然後把相鄰的為1的有序區間,進行合併,得到乙個相鄰長度為二的有序區間,最後再把相鄰的有序區間進行合併得到長度為4的有序區間,依次這樣下去,4和八,八和十六,直到所有的數字合併成為n的區間,那麼整個數就變得有序了

快速排序

隨機的在資料中選擇乙個元素,小於對於它的數,統一的放在它的左邊,大於它的數,放在它的右邊。

然後接下來對這兩個部分的數進行遞迴呼叫快速排序的過程,這樣使得整個數都有序了。

劃分過程是怎麼樣的?

首先將劃分值放在整個數的最後的位置,然後設計乙個小於等於區間初始時長度為0,放在整個陣列的左邊

然後從左到右遍歷所有元素,如果當前元素大於我的劃分值,那就繼續遍歷下乙個元素,如果當前值小於等於我劃分的值,那麼我就把當前數和之前定義小於等於區間的下乙個數進行交換, 然後令小於等於區間向右挪動乙個位置,然後遍歷所有的元素,直到最後的數的時候,也就是劃分值,與小於等於區間的下乙個元素進行交換。整個就是乙個完整的劃分過程,

它的時間複雜度為o(n),

堆排序先把陣列中的n個數建立成乙個大小為n 的大根堆,那麼我們知道堆頂是所有元素中最大的乙個值,把堆頂元素和最後乙個元素進行交換,然後把最大值脫離堆結構,放到陣列的最後乙個位置

……希爾排序

它是快速排序的改良版

五分鐘擼一下遊戲自動化

1 進入airtest官網 3 安裝python,並在airtest中進行配置 4 通過airtest鏈結手機,安卓比較方便 5 然後就可是copy下面的指令碼稍稍改動座標就可以自動打遊戲了 encoding utf8 author wujianqinjian from airtest.core.a...

五分鐘學GIS 時空資料視覺化表達

今天五分鐘學gis的時間我們來學習時空資料視覺化。時空資料是指具有時間元素並隨時間變化而變化的空間資料,是描述地球環境中地物要素資訊的一種表達方式。這些時空資料涉及到各式各樣的資料,如地球環境地物要素的數量 形狀 紋理 空間分布特徵 內在聯絡及規律等的數字 文字 圖形和影象等,不僅具有明顯的空間分布...

趁著五一假期,花十分鐘複習一下H5

翻開塵封的資料夾,裡面還存著過去的js練習題 表單資料從客戶端傳送到伺服器的方法,分別為post和get方法,post方法比較安全 指定處理表單的服務端程式。可以是程式或指令碼的乙個完整url 你是不是也有些遺忘了呢?接下來跟著我一起去複習一下h5新增標籤及新增屬性的一些相關知識啦 標記定義一篇文章...