知識點:堆棧书妻,隊列获高,排序算法
堆棧:
一.基本概念: 棧頂哈肖,棧底,出棧(pop)念秧,入棧(push)淤井,空棧
1.堆棧(Stack):先進后出的線性表(Last in first out ——LIFO)
特點:(1).只在其中一頭(棧頂)進行數(shù)據(jù)的插入和刪除
(2).先進后出或后進先出的 線性表
2.入棧:將元素添加到堆棧中 ,壓棧(push)
出棧:將元素中堆棧中取出摊趾,彈棧(pop)
隊列:
特點:先進先出(FIFO),兩頭都可以進行操作币狠,隊頭(front)刪除元素,隊尾(rear)加入元素
算法:
1.冒泡排序—基本思想:比較兩個相鄰的數(shù)砾层,將較小的放在前面漩绵,較大的放在后面吴裤,這樣可以將這些數(shù)中最大的找出來放到最后挠铲,然后比較剩下的數(shù)漫蛔,再在剩下的數(shù)中找出最大的涛目,直到所有的數(shù)字都按照從小到大的順序排列甸饱。
2.選擇排序—基本思想:每趟從待排序的數(shù)據(jù)元素中選出最衅庞病(或最大)的一個元素涨缚,逐個排在已排好序的數(shù)列的最后家制,直到全部待排序的數(shù)據(jù)元素排完秕重,選擇排序相對于冒泡排序來說不同,他并不是每次發(fā)現(xiàn)逆序都交換,選擇排序是不穩(wěn)定的排序溶耘。
3.快速排序—基本思想:將一個大數(shù)組的排序問題二拐,分解成兩個小的數(shù)組的排序,而每一個小的數(shù)組又可以繼續(xù)分解成更小的數(shù)組汰具,這樣這個數(shù)組的排序方式可以一直的遞歸分解下去卓鹿,直到數(shù)組的大小最大為2。在第一次劃分的時候選擇一個基準元素留荔,然后將它分解成左右兩個無序的數(shù)組吟孙,并且澜倦,使得左邊的所有數(shù)組元素都小于等于基準元素,右邊的數(shù)組元素都大于等于基準元素杰妓,然后分別對左邊和右邊的數(shù)組遞歸做同樣的操作藻治。算法效率的關(guān)鍵在于如何分解數(shù)組,也就是如何確定數(shù)組的基準元素巷挥,或者選擇數(shù)組中間的元素作為基準元素桩卵。