疯子的算法总结(六) 简单排序总 选择排序+插入排序+比较排序+冒泡排序
一、數(shù)組的排序算法
1.選擇排序
選擇排序是指每次選擇所需排序數(shù)組中的最大值或者最小值(根據(jù)排序方式選擇,從大到小選最大,從小到大選最小),將這個(gè)元素與前面沒有進(jìn)行排序的元素交換。
下面以1 4 2 5 9 6這些亂序元素,來表現(xiàn)排序過程。
第一次排序 9 4 2 5 1 6
第二次排序 9 6 2 5 1 4
第三次排序 9 6 5 2 1 4
第四次排序 9 6 5 4 1 2
第五次排序 9 6 5 4 2 1
用一段程序?qū)崿F(xiàn)以上過程
以由大到小為例
2.冒泡排序法
冒泡排序法是指在排序是比較相鄰兩個(gè)元素的數(shù)值,換位置(從大到小,大在前。從小到大,小在前。)下面仍以1 4 2 5 9 6這些亂序元素為例
以由大到小排序
第一排序過程 sec1 ?????? 4 1 2 5 9 6 (1/4比較)
??????????????????????sec2????????4 2 1 5 9 6 (1/2比較)
??????????????????????sec3????????4 2 5 1 9 6 (1/5比較)
??????????????????????sec4????????4 2 5 9 1 6 ??(1/9比較)
??????????????????????sec5????????4 2 5 9 6 1 (1/6比較)
第二排序過程sec1 ?????? 4 2 5 9 6 1 (4/2比較)
??????????????????????sec2????????4 5 2 9 6 1(2/5比較)
??????????????????????sec3????????4 5 9 2 6 1 (2/9比較)
??????????????????????sec4????????4 5 9 6 2 1 ??(6/9比較)
??????????????????????sec5????????4 5 9 6 2 1 (2/1比較)
第三排序過程:5 9 6 4 2 1(中間過程略)
第四排序過程:9 6 5 4 2 1(中間過程略)
第五排序過程:9 6 5 4 2 1(中間過程略)
雖然這個(gè)過程在四過程時(shí)就已經(jīng)完成,這是針對(duì)特殊情況,一般情況要進(jìn)行n-1此過程才能完全排序。
用程序?qū)崿F(xiàn)上述過程
3.交換排序法
交換排序法,將每一位數(shù)于后邊的數(shù)一一比較,如果發(fā)現(xiàn)符合交換條件的元素就進(jìn)行交換;下面仍以下面仍以1 4 2 5 9 6這些亂序元素為例
以由大到小排序
第一次排序 1與4比較,1小于4交換4 1 2 5 9 6。4與2比較,4大于2繼續(xù)。4與5比較,4小于5,交換5 1 2 4 9 6。5與9比較,5小于9,交換9 1 2 4 5 6。9與6比較,9大于6繼續(xù)。
第二次排序 1與2比較,1小于2,交換9 2 1 4 5 6。2與4比較,2小于4交換9 4 1 2 5 6。4與5比較,4小于5,交換9 5 1 2 4 6。5與6比較,5小于6,交換9 6 1 2 4 5 。
第三次排序 9 6 5 1 2 4
第四次排序 9 6 5 4 1 2
第五次排序 9 6 5 4 2 1
用程序?qū)崿F(xiàn)
4.插入排序法
插入排序法相對(duì)較為復(fù)雜,從數(shù)組中抽出一個(gè)是在前面的數(shù)據(jù)中選擇合適的位置插入。
下面仍以下面仍以1 4 2 5 9 6這些亂序元素為例
以由大到小排序
第一次 取出1放在第一個(gè)位置 1
第二次 取出4,跟1比較大小,大于1放在1前面。 4 1
第三次取出2,跟1比較大小,比1大,則再跟4比較大小。小于4,插入。 4 2 1
第四次取出5,跟1比較大小,大于1,則再跟前一元素2比較,大于2,則再跟前一元素4比較,大于4,插入。5 4 2 1
第五次 9 5 4 2 1
第六次9 6 5 4 2 1
用程序?qū)崿F(xiàn)上述過程
總結(jié)
以上是生活随笔為你收集整理的疯子的算法总结(六) 简单排序总 选择排序+插入排序+比较排序+冒泡排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lending Club 数据做数据分析
- 下一篇: JavaScript实现随机点名器的方法