排序

冒泡排序:設(shè)待排序的序列中元素個(gè)數(shù)為n,首先比較最后兩個(gè)元素,如果逆序則交換,否則繼續(xù)比較前兩個(gè)。

圖片發(fā)自簡(jiǎn)書(shū)App


插入排序:每一步將待排序的元素,插入到前面拍好序的適當(dāng)?shù)奈恢蒙先ィ钡皆厝坎迦霝橹埂?/p>

直接插入排序:當(dāng)?shù)趇個(gè)元素時(shí),前面的i-1個(gè)已經(jīng)排好序,這時(shí),把i插入到前面合適的位置,其后面的元素后移。總的比較次數(shù)和元素比較次數(shù)都是n(n-1) /2;

折半插入排序:一個(gè)順序表中有一個(gè)序列,其中0到i-1是已經(jīng)排好序的元素,則在i插入時(shí),利用折半查找法尋找插入位置。

圖片發(fā)自簡(jiǎn)書(shū)App


希爾排序:設(shè)計(jì)一個(gè)步長(zhǎng)序列,在排序時(shí),反向使用步長(zhǎng)序列。設(shè)待排序的n個(gè)元素,取一個(gè)整數(shù)步長(zhǎng)h<n作為間隔,將全部元素分為h個(gè)子序列,將所有距離為h的元素放入同一個(gè)序列,在每一個(gè)子序列中分別施行插入排序,然后減小間隔,直到h為1,將所有元素放在同一個(gè)序列中排序?yàn)橹埂?/p>

直接選擇排序:

1) 在一組元素a[i]~a[n-1]中選擇具有最小關(guān)鍵字的元素。

2)若不是這組元素中的第一個(gè)元素,則將它與這組元素中的第一個(gè)元素交換。

3)在這組元素中,剔除最小的元素,在剩下的a[i+1]~a[n-1]中重復(fù)執(zhí)行1,2步,直到剩余元素只有一個(gè)為止。

圖片發(fā)自簡(jiǎn)書(shū)App


快速排序:基于一種分治策略,其思路是取待排序的元素中的某個(gè)元素作為劃分元素,按照該劃分元素的關(guān)鍵字,將整個(gè)序列分為左右兩個(gè)子序列,左側(cè)的子序列中所以元素都小于或等于劃分元素的關(guān)鍵字,右側(cè)子序列元素都大于劃分元素的關(guān)鍵字,兩個(gè)子序列使用同樣的方法劃分,直到所有元素排序完成為止。

圖片發(fā)自簡(jiǎn)書(shū)App

歸并排序:

二路歸并:將兩個(gè)有序的序列合并成一個(gè)新的有序序列。

圖片發(fā)自簡(jiǎn)書(shū)App

自底向上:從一個(gè),兩個(gè)排序,兩組排序,等等。

圖片發(fā)自簡(jiǎn)書(shū)App

自頂向下:把一個(gè)分成兩段,然后再不斷的往下分,最后分到1個(gè),在回退成一組。

圖片發(fā)自簡(jiǎn)書(shū)App

堆排序:第一,構(gòu)造堆,插入構(gòu)造,并不斷調(diào)整。

第二種方法,將數(shù)據(jù)元素放入數(shù)組中,并將數(shù)組視為一棵尚未滿足堆性質(zhì)的完全二叉樹(shù),從右往左,反向?qū)哟伪闅v二叉樹(shù)的所有非葉子節(jié)點(diǎn),并對(duì)從小到大的各棵子樹(shù)通過(guò)篩選運(yùn)算使之成為堆。

圖片發(fā)自簡(jiǎn)書(shū)App
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 排序的基本概念 在計(jì)算機(jī)程序開(kāi)發(fā)過(guò)程中,經(jīng)常需要一組數(shù)據(jù)元素(或記錄)按某個(gè)關(guān)鍵字進(jìn)行排序,排序完成的序列可用于快...
    Jack921閱讀 1,571評(píng)論 1 4
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,301評(píng)論 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,352評(píng)論 0 2
  • 簡(jiǎn)單排序 插入排序 想象一下插隊(duì)的過(guò)程... 一個(gè)人通過(guò)插隊(duì)的方式排到前面,而將原本在他前面的人擠到了后面的位置。...
    Kasheem_Lew閱讀 1,594評(píng)論 0 4
  • 一、概述 排序算法概念 在計(jì)算機(jī)科學(xué)與數(shù)學(xué)中,一個(gè)排序算法是將一組雜亂無(wú)章的數(shù)據(jù)按一定的規(guī)律順次排列起來(lái)的算法。排...
    簡(jiǎn)書(shū)冷雨閱讀 1,191評(píng)論 0 0

友情鏈接更多精彩內(nèi)容