/* Esimerkki A1. 24.8.2000 Matti Meriläinen Kuplalajittelu taulukossa. Käytetään taulukon perustoimintoja Index, Store, Retrieve, Last, First, Less, Create ja Print. */ #include "TRA.h" #include void Swap(DARRAY A, INDEX i, INDEX j) { ELEMENT E = DARRAY_RETRIEVE(A, i); DARRAY_STORE(A, i, DARRAY_RETRIEVE(A, j)); DARRAY_STORE(A, j, E); } void BubbleSort(DARRAY A) { INDEX i, j; for (j = DARRAY_LAST(A); j!=DARRAY_FIRST(A); j--) for (i = DARRAY_FIRST(A); i!=j; i++) if (!DARRAY_LESS(A ,DARRAY_RETRIEVE(A, i), DARRAY_RETRIEVE(A, j))) Swap(A, i, j); } int main() { DARRAY A; DARRAY_CREATE(A, INT_DESC, 20, 1); DARRAY_CONSTRUCT_RANDOM(A, 20, 0, 9); printf("%d elementtiä:\n",DARRAY_SIZE(A)); DARRAY_PRINT(A); BubbleSort(A); printf("\nLajiteltuna:\n"); DARRAY_PRINT(A); return 0; }