原创 我的友情鏈接

51CTO博客開發

原创 有序表的查找

一、折半查找1、條件:待查表爲有序表。2、原理:首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查找關鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查找關鍵字,則進一步

原创 冒泡排序

一、概念冒泡排序(Bubble Sort):一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄爲止。二、排序用到的結構與函數#define MAXSIZE 10 /*用於要排序數組個數最大值,可

原创 圖的關鍵路徑

1、概念活動的網(AOE):在一個表示工程的帶權有向圖中,用頂點表示事件,用有向邊表示活動,用邊上的權值表示活動的持續時間,這種有向圖的邊表示活動的網,我們稱之爲AOE網(Activity On Edge Network)。AOE網具有以下

原创 快速排序

1、概念快速排序(Quick Sort)的基本思想是:通過一趟排序將待排序記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄關鍵字小,則可分別對這兩部分記錄繼續進行排序,已到達整個序列有序的目的。2、算法介紹設要排序的數組是A[

原创 堆排序

1、概念堆:堆是具有下列性質的完全二叉樹:每個結點的值都大於或等於其左右孩子結點的值,稱爲大根堆;或者每個結點的值都小於或等於其左右孩子結點的值稱爲小根堆。堆排序(Heap Sort):將待排序的序列構造成一個大根堆。此時,整個序列的最大值

原创 二叉排序樹(一)

1、概念二叉排序樹(Binary Sort Tree):又稱二叉查找樹。 它或者是一棵空樹;或者是具有下列性質的二叉樹:(1)若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;(2)若右子樹不空,則右子樹上所有結點的值均大於它的根結

原创 平衡二叉樹(AVL樹)

1、概念平衡二叉樹:是一種二叉排序樹,其中每一個節點的左子樹和有字數的高度差之多等於1。平衡因子BF(Balance Factor):將二叉樹上結點的左子樹深度減去右子樹深度的值。最小不平衡子樹:距離插入結點最近的,且平衡因子的絕對值大於1

原创 歸併排序

1、概念歸併排序(Merging Sort):將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分爲若干個子序列,每個子序列是有序的。然後再把有序子序列合併爲整體有序序列。2、算法實現第一步:申請空間,使其大小爲兩個已經排序序列

原创 構造連通網的最小代價生成樹

一、普里姆算法(Prim)1、條件:圖爲鄰接矩陣結構(Adjacency List)2、原理:假設 WN=(V,{E}) 是一個含有 n 個頂點的連通網,TV 是 WN 上最小生成樹中頂點的集合,TE 是最小生成樹中邊的集合。顯然,在算法執

原创 圖的拓撲排序

1、概念活動的網(AOV網):在一個表示工程的有向圖中,用頂點表示活動,用弧表示活動之間的優先關係,這樣的有向圖爲頂點表示活動的網,我們成爲AOV網(Activity On Vertext Network)。AOV網中的弧表示活動之間存在的

原创 如何優化js代碼(2)——for循環

2、for循環for循環是我們經常會遇到的情況,我們先看看下面例子:?<input type="button" value="效率低" onclick="func1()"/><input type="button" value="效率高"

原创 快速排序

1、概念快速排序(Quick Sort)的基本思想是:通過一趟排序將待排序記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄關鍵字小,則可分別對這兩部分記錄繼續進行排序,已到達整個序列有序的目的。2、算法介紹設要排序的數組是A[

原创 冒泡排序

一、概念冒泡排序(Bubble Sort):一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄爲止。二、排序用到的結構與函數#define MAXSIZE 10 /*用於要排序數組個數最大值,可

原创 歸併非遞歸排序

歸併排序大量引用了遞歸,儘管在代碼上比較清晰,容易理解,但會造成時間和空間上的性能損耗,所以考慮將遞歸轉化爲迭代從而提高性能。1、code/*對順序表L作歸併非遞歸排序*/ void MergeSort2(SqlList *L) {