關於排序演算法的記錄

2022-08-24 11:12:18 字數 597 閱讀 6867

1.選擇排序-->比如:既然我的目標是把一堆數字從小到大排,那麼我按階段解決這個問題不就好了麼?第一步找到最小的那個數把它放到第一位,第二步在剩下的所有數里再找最小的,把它放到第二位,依次類推

2.插入排序-->比如:把乙個數字插入到乙個有序的陣列中,假如從右向左,如果小於右邊第乙個,右邊第乙個向後移動一位,同理走下去,找到小於等於它的插入即可

4.二分法-->二分通常可以使得問題的規模減半,比個例子:我們最常見的乙個遊戲,猜數字。我選定乙個數字,在0到100之間,你來猜,如果猜得比選定數字大,我會提示你猜高了,如果比選定數字小,我會提示你猜低了。那麼最多需要幾次就一定能猜對呢?我們常用的策略就是二分,先報50,如果主持人說低了,那我就知道,這個數字一定位於50,100這個區間,那我再報75。這樣每次都能把待選區減少一半.二分法必須在有序情況下才可以進行

5.快速排序-->快速排序是基於上面二分法進行的,把乙個陣列(亂序)進行劃分成兩個陣列,乙個陣列裡面全部大於某個下標數,乙個全部小於某個下標數,此下標必須在0到陣列length之間,然後遞迴下去進行排序

關於快速排序演算法的問題記錄

include void swap int a,int b void print int a,int n printf n void maopao int a,int n void choose int a,int n swap a i,a min void fast int a,int n fas...

排序演算法記錄

sort.cpp 定義控制台應用程式的入口點。include stdafx.h include include using namespace std 插入排序 a 指向陣列第乙個元素指標 n陣列元素個數 void insertsort int a,int n 希爾排序 a 指向陣列第乙個元素指標 ...

排序演算法思想記錄 快速排序演算法

思路 選取陣列中任意乙個數字作為對比位pivot,然後定義兩個指標位left right,分別從陣列開始和結束位置向內掃瞄,每次先動乙個指標位,如right遇到小於pivot的值,將該值存放到左指標處,接著左指標向內位移,遇到大於pivot的值存放至右指標處,依次迴圈到left與right重合,則完...