冒泡排序(Bubble Sort):重复地走访要排序的数列,一次比较两个元素。
排序思想:
依次比较相邻的两个记录的关键字,若两个记录是反省的(即前一个记录的关键字大于后前一个记录的关键字),则进行交换,知道没有反序记录为止。
-
将 L->R[1]与L->R[2]的关键字,若反序(L->R[1]的关键字大于L->R[2]的关键字),则交换两个记录;然后比较L->R[2]与L->R[3]的关键字,依此类推,L->R[n-1]与L->R[n]的关键字比较后为止,称为一趟冒泡排序。
L->R[n]为关键字最大的记录。
C
void Bubble_Sort(Sqlist *L)
{
int j,k,flag;
for(j=0;j<L->length;j++) //共有 n-1 趟排序
{
flag=TRUE;
for(k=1;k<L->length-j;k++) //一趟排序
if(LT(L->R[K+1].key,L->R[k].key))
{
flag=FALSE;