在程式設計中,為了處理方便, 把具有相同型別的若干
變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為
陣列。在c語言中, 陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、
指標陣列
、結構陣列等各種類別。是只能在某一端插入和刪除的特殊
線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。一種特殊的
線性表,它只允許在表的
前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的
邏輯順序
是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時
動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。是包含n(n>0)個結點的有窮集合k,且在k中定義了乙個關係n,n滿足 以下條件:
(1)有且僅有乙個結點 k0,他對於關係n來說沒有前驅,稱k0為樹的根結點。簡稱為根(root)。 (2)除k0外,k中的每個結點,對於關係n來說有且僅有乙個前驅。
(3)k中各結點,對關係n來說可以有m個後繼(m>=0)。圖是由結點的有窮集合v和邊的集合e組成。其中,為了與樹形結構加以
區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關係。在電腦科學中,堆是一種特殊的樹形資料結構,每個結點都有乙個值。通常我們所說的堆的資料結構,是指二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是乙個堆。若結構中存在關鍵字和k相等的記錄,則必定在f(k)的儲存位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關係f為雜湊函式(hash function),按這個思想建立的表為
雜湊表。
氣泡排序(bubble sort)
雞尾酒排序 (cocktail sort, 雙向的氣泡排序)
插入排序 (insertion sort)
桶排序 (bucket sort)
計數排序 (counting sort)
合併排序 (merge sort)
原地合併排序
二叉排序樹排序 (binary tree sort)
鴿巢排序 (pigeonhole sort)
基數排序 (radix sort)
gnome 排序
圖書館排序選擇排序 (selection sort)
希爾排序 (shell sort)
組合排序
堆排序 (heapsort)
平滑排序
快速排序 (quicksort)
內省排序 (introsort)
patience sortingbogo排序
stupid sort
珠排序(bead sort)
pancake sorting
資料結構和演算法 排序
一 簡單排序 1.氣泡排序o n 2 兩兩比較,反序交換 public static int bubblesort int arr return arr 2.選擇排序o n 2 public static int selectsort int arr if i minindex return arr...
資料結構和演算法(排序)
排序 使乙個無序序列轉變為有序序列的過程 排序的穩定性 假設ki kj,1 i n,1 j n,i j 且在排序前的序列中ri領先於rj 即i如果排序後ri仍領先於rj,則稱所用的排序方法是穩定的,否則是不穩定的 影響排序演算法效能的幾個要素 時間效能,輔助空間 演算法的複雜性 氣泡排序 每次取相鄰...
常用資料結構演算法 堆排序
首先我們要了解什麼是堆排序,其排序的時間複雜度為o nlogn 且不會因為排序的陣列的資料惡化,但需要提供額外的排序記憶體。這裡的堆當中,常用的資料結構就是二叉樹,且是完全二叉樹。根據要排序的方式 公升序,降序 可以將這個二叉樹的特點定義下來,就是根節點都比左右子節點大 大根堆 或者是根節點都比左右...