書中本意是想省略後端順序表中無用的查詢,但是忽略了乙個問題。
原書中**大意為:
void bubblesort(graph *g,intlen)}}
//printf("%d %d\n",i,j);
}
倘若陣列此時為:
78101112
2216
2016
2016
2126
1718
19
那麼測試i=5時,flag並未被標記,排序終止,但是後端其實只有乙個節點是順序的,而後面還有未排序的點。因此此方法並不適用。
因此,最好還是去掉標記為,使用傳統優化方法即可:
void bubblesort(graph *g,intlen)}}
}
氣泡排序 大話資料結構
用於要排序陣列個數最大值,可修改 define maxsize 10 typedef struct sqlist 交換l中陣列r的下標為i和j的值 void swap sqlist l,i,j 氣泡排序初級版,嚴格說不是標準冒泡,因為不滿足 相鄰兩兩比較 但是最簡單的交換排序 思路是每乙個數與它後面...
《大話資料結構》 排序
排序的穩定性 ri rj,在排序前ri領先於rj,如果排序後ri仍然領先於rj,則稱為所用的排序演算法是穩定的 反之,若可能使得排序後rj領先於ri,則稱為該排序演算法是不穩定的。內排序和外排序 內排序 排序的整個過程中,待排序的所有記錄全部存放在記憶體中。常見的內排序演算法有 氣泡排序 簡單選擇排...
資料結構 氣泡排序
起泡排序的過程很簡單。首先將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序,則將兩個記錄交換之,然後比較第二個記錄和第三個記錄的關鍵字。依次類推,直至第n 1個記錄和第n個記錄的關鍵字進行比較為止。上述過程稱作第一趟起泡排序,其結果使得關鍵字最大的記錄被安置到最後乙個記錄的位置上。然後進行...