假設含有n個記錄的序列為,其相應的關鍵字分別為,需確定1,2,…,n的一種排列p1,p2,…pn,使其相應的關鍵字分別滿足kp1假設ki=kj(i<=n,1<=j<=n,i!=j),且在排序前的序列中ri領先於ri(即ii仍領先於rj,則稱所用的排序方法是穩定的;反之,若可能使得排序後的序列中rj領先ri,則稱所用的排序方法是不穩定的。<=kp2
<=…<=kpn非遞減(或非遞增)關係,即使得序列稱為乙個按關鍵字有序序列,這樣的操作就稱為排序。
內排序是在排序整個過程中,待排序的所有記錄全部被放置在記憶體中。外排序是由於排序的記錄個數太多,不能同時放置在記憶體,整個排序過程需要在內外存之間多次交換資料才能進行。
氣泡排序可能是大家最耳熟能詳的一種排序演算法,簡單易懂,這裡不做贅述;
void
bubblesort
(int arr,
int len)}}
}
因為氣泡排序存在許多沒有必要的迴圈,所以加了乙個flag,當其不發生交換時,說明該索引後面的數,已經是有序的了,避免了效率的浪費。
void
sbubblesort
(int arr,
int len)}}
}
void
selectsort
(int arr,
int len)
}swap
(arr[minindex]
, arr[i]);
}}
void
insertsort
(int arr,
int len)
arr[j+1]
= temp;}}
}
void
quicksort
(int arr,
int first,
int last)
while
(i < j)
while
(i < j && arr[i]
<= arr[first])if
(i < j)
}swap
(arr[first]
, arr[j]);
quicksort
(arr, first, j -1)
;quicksort
(arr, j +
1, last)
;}
#include
#include
using
namespace std;
class
sort}}
}void
sbubblesort
(int arr,
int len)}}
}void
selectsort
(int arr,
int len)
}swap
(arr[minindex]
, arr[i]);
}}void
insertsort
(int arr,
int len)
arr[j+1]
= temp;}}
}void
quicksort
(int arr,
int first,
int last)
while
(i < j)
while
(i < j && arr[i]
<= arr[first])if
(i < j)
}swap
(arr[first]
, arr[j]);
quicksort
(arr, first, j -1)
;quicksort
(arr, j +
1, last);}
};
#include
"allsort.h"
#define num 20
intmain()
sort sort;
clock_t start;
start =
clock()
; num);
num);
sort.
insertsort
(arr, num)
; num);
0, num - 1);
cout <<
"用時:"
<<((
(double
)clock()
- start)
/ clocks_per_sec)
int i =
0; i < num;
++i)
getchar()
;return0;
}
資料結構之排序(未完,待續)
資料結構知識點總結 插入排序 主 include void insertsort int a,size t n 直接插入排序 else 希爾排序 void shellsort int a,size t n 希爾排序 else gap gap 3 1 直接插入排序 insertsort a,n 對比,...
資料結構大綱(二) 未完,待續
排序技術 線性表查詢技術 順序表的順序查詢 折半查詢 線性表必須有序,必須採用順序儲存 非遞迴演算法 樹表查詢技術 二叉排序樹 中序遞增 雜湊表查詢技術 未整理 插入排序 直接插入排序 穩定的排序方法 下次寫希爾排序 不穩定 下次寫 交換排序 起泡排序 又稱氣泡排序 穩定 public class ...
資料保護 未完待續
1.2 安全標準簡介 二 資料庫安全性控制 2.5資料庫角色 2.6強制訪問控制的方法 三 檢視機制 二 資料庫的完整性 保護資料庫以防止不合法使用造成的資料洩露 更改和破壞。1.1 資料庫的不安全因素 1 非授權使用者對資料庫的惡意訪問和破壞 2 資料庫中重要或敏感的資料被洩露 3 安全環境的脆弱...