簡(jiǎn)單常用的幾個(gè)排序方法的介紹和c++代碼

一.冒泡排序
冒泡排序是一種最基礎(chǔ)的交換排序.因?yàn)槠浜?jiǎn)單和易理解, 一直被新手們稱為yyds.下面看看冒泡排序的思路和代碼實(shí)現(xiàn)吧!
思路:(升序排序)冒泡排序操作會(huì)從第一位開始將相鄰的兩個(gè)元素進(jìn)行比較,并將更大的數(shù)字交換到右邊, 重復(fù)此操作直到最大的數(shù)字移到最右邊. 每一趟都可以把最大的數(shù)字移到最右邊, 以此進(jìn)行n-1趟操作來排序n個(gè)數(shù)字.
c++代碼:
二.選擇排序
選擇排序也是初學(xué)者最喜歡的排序算法之一.
思路: 找到數(shù)組中最小的元素,將它與第一個(gè)元素交換位置,然后在剩下的元素中再找到最小的元素,將它與第二個(gè)元素交換位置,重復(fù)執(zhí)行這個(gè)過程,直到整個(gè)數(shù)組排序.
c++代碼:
三.快速排序
快速排序有著比冒泡排序和選擇排序更好的時(shí)間復(fù)雜度,但不是那么易于理解.這里主要給出代碼實(shí)現(xiàn):
思路:首先確定一個(gè)數(shù)key,這里我們?nèi)?shù)組中間的數(shù),然后i從左到右找到比key大的數(shù), j從右到左找比key小的數(shù),重復(fù)此過程直到i和j相遇,此時(shí)key左邊的數(shù)都比它小,右邊的數(shù)都比它大.在遞歸的把key左邊的數(shù)和右邊的數(shù)執(zhí)行如此操作,直到數(shù)組排列完畢:
c++代碼:
四.STL中的sort函數(shù)
相信這才是最方便,大家最常用的排序方法.
需要注意,sort函數(shù)包含在頭文件為#include<algorithm>的c++標(biāo)準(zhǔn)庫中.
sort函數(shù)有三個(gè)參數(shù),分別是sort(第一個(gè)元素的指針,最后 一個(gè)元素的下一位的指針,排列方法);
如果不傳第三個(gè)參數(shù),會(huì)默認(rèn)從小到大排序。
希望大家給我一個(gè)免費(fèi)的贊。