C 教程
冒泡排序(英語(yǔ):Bubble Sort)是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪(fǎng)過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序(如從大到小、首字母從A到Z)錯(cuò)誤就把他們交換過(guò)來(lái)。
過(guò)程演示:
選擇排序(Selection sort)是一種簡(jiǎn)單直觀(guān)的排序算法。它的工作原理如下。首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再?gòu)氖S辔磁判蛟刂欣^續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類(lèi)推,直到所有元素均排序完畢。
過(guò)程演示:
插入排序(英語(yǔ):Insertion Sort)是一種簡(jiǎn)單直觀(guān)的排序算法。它的工作原理是通過(guò)構(gòu)建有序序列,對(duì)于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。插入排序在實(shí)現(xiàn)上,通常采用in-place排序(即只需用到 {displaystyle O(1)} {displaystyle O(1)}的額外空間的排序),因而在從后向前掃描過(guò)程中,需要反復(fù)把已排序元素逐步向后
挪位,為最新元素提供插入空間。過(guò)程演示:
希爾排序,也稱(chēng)遞減增量排序算法,是插入排序的一種更高效的改進(jìn)版本。希爾排序是非穩(wěn)定排序算法。
希爾排序是基于插入排序的以下兩點(diǎn)性質(zhì)而提出改進(jìn)方法的:
過(guò)程演示:
把數(shù)據(jù)分為兩段,從兩段中逐個(gè)選最小的元素移入新數(shù)據(jù)段的末尾。
可從上到下或從下到上進(jìn)行。
過(guò)程演示:
在區(qū)間中隨機(jī)挑選一個(gè)元素作基準(zhǔn),將小于基準(zhǔn)的元素放在基準(zhǔn)之前,大于基準(zhǔn)的元素放在基準(zhǔn)之后,再分別對(duì)小數(shù)區(qū)與大數(shù)區(qū)進(jìn)行排序。
過(guò)程演示: