前面講了那麼多的排序,不知道有沒有人看,如果有人看,就吱一聲,也好讓我有信心在寫下去了!
不管了,還是那句話,寫自己的博文,讓別人說去吧,現在應該是,寫自己的博文,讓別人看去吧!看不
看,是你的事,寫不寫是我的事!好了,廢話少說,開始今天的征程——直接選擇排序!
演算法思想:所謂直接選擇排序,如下:
(1)在一組物件
v[i]~v[n - 1]
中選擇具有最小關鍵碼的物件
(2)若它不是這組物件中的第乙個物件,則將它與這組物件中的第乙個物件對調
(3)在這組物件中剔除這個具有最小關鍵碼的物件,在剩下的物件
v[i + 1]~v[n - 1]
中重複執行第(1
)、(2
)步,直到剩餘物件只有乙個為止。
說了這麼多,你應該懂得~~。
好了,現在來講講我的實現方法。首先需要兩層迴圈,為什麼,看了,因為看了思路,直覺告訴我
的,現在我就告訴你是兩層的。不要問我為什麼?外層迴圈獲得乙個新的數,現在我的目的是將這個
新數放到陣列中的正確地方去。你懂得。你要選擇正確的地方,
內層迴圈就是控制這個選擇的。如何選擇,沒獲得乙個新的數,你必須要將它們依次和這個數之前的
數進行比較,如果滿足條件,什麼條件,這個需要看你的了,因為條件有公升序和降序之分的。好了,
滿足了條件,就進行調換,陣列中兩個元素的對換那個是不是有點太簡單了,我都不好意思提了。好
了。親手實現吧。**貼上:
這是我寫的**,如果大家覺得我寫的不對,希望大家給我提出,和我一起分享。謝謝!我的宗旨
是,你我共同學習!
現在回過頭來看看,直接選擇排序和直接插入排序有什麼不同嗎?
演算法不會,尚能飯否之樹(1)
這篇博文主要講的是樹的基本概念,是為後一篇博文做基礎的。後一篇博文將主要是實現樹的演算法。1 樹是由n n 0 個節點組成的有限集合。2 每個子樹的根節點有且僅有乙個直接前驅,但可以有 0個或多個直接後驅。不只是二叉樹。3 節點 它包含資料項及指向其它節點的分支。4 節點的度 是節點所擁有的子樹棵樹...
演算法之直接選擇排序
選擇排序的基本思想 每次都從待排序的檔案中選擇出排序碼最小的記錄,將該記錄放於已排序檔案的最後乙個位置,直到已排序檔案記錄個數等於初始待排序檔案的記錄個數字置。這種思路導致的結果便是排出來的序列為從大到小 選擇排序主要分 1.直接選擇排序 2.樹形選擇排序 3.堆排序 直接選擇排序是一種簡單的方法,...
排序演算法之直接選擇排序
直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...