氣泡排序:
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
氣泡排序由於簡潔、易懂,一般是初學者的入門演算法。但事實上,氣泡排序在效率並不高,特別是在所得陣列基本有序的情況下。但氣泡排序可以通過一定的優化改善這個缺點。**如下:
void bubble_sort(int* nums, int length)
} i = lastexchange_index;
}}
這段**主要是通過記錄最後一次比較的位置減少與有序序列的重複比較,從而改善了氣泡排序。 資料結構與演算法 小白的演算法學習之路
1.1 個人感悟 這種狀態直到前段時間才有改變。幫師弟解決了乙個檔案中字串排序的問題,使用了一直早有耳聞的multimap,將乙個本來需要將近1h才能出結果的程式優化成1s不到出結果,著實在精神上感到了振奮,也認識到了資料結構和演算法的巨大威力和無窮魅力!讓我發自內心感受到身為程式設計師,無法駕馭資...
資料結構與演算法學習
我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...
資料結構與演算法學習筆記
演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...