void BubbleSort(int n, int data[]) {register int i,j; for (i = 0; i < n-1; i++) /* LI: The i smallest elements are in their proper places. data[0],...,data[n-1] is a permutation of data0[0],...,data0[n-1]. If 0 <= n, then i <= n. If n < 0, then i = 0. */ for (j = n-1; j > i; --j) /* LI: data[j] is the smallest element in data[j],...,data[n-1]. data[0],...,data[n-1] is a permutation of data0[0],...,data0[n-1]. j >= i. */ if (data[j] < data[j-1]) swap (data+j, data+(j-1)); }