bubbleSort ¹öºí¹ý¿¡ µû¸£´Â ¼ÒÆ®
void bubbleSort(DATA *data, int nmem, int asdes);
typedef struct { int key; /* ºñ±³ÀÇ Å°°¡ µÇ´Â Çʵå */ int info; /* ±× ¿ÜÀÇ Çʵå */ } DATA; data (ÀÔÃâ·Â) µ¥ÀÌÅÍ ·¹ÄÚµåÀÇ ¹è¿ nmem (ÀÔ·Â) ·¹ÄÚµå ¹è¿ÀÇ Å©±â asdes (ÀÔ·Â) ½Â¼ø¡¤³»¸²Â÷¼øº°,0:½Â¼ø, 1:³»¸²Â÷¼ø
¾øÀ½
void bubbleSort(DATA *data, int nmem, int asdes) { int i, j; static void swap(); for (i = 0; i < nmem - 1; i++) { for (j = nmem - 1; j >= i + 1; j--) if (asdes == 0) { if (data[j]. key < data[j-1]. key) swap(&data[j], &data[j-1]); } else { if (data[j]. key > data[j-1]. key) swap(&data[j], &data[j-1]); } } } static void swap(DATA *a, DATA *b) { DATA t; t.key = a->key; t.info = a->info; a->key = b->key; a->info = b->info; b->key = t.key; b->info = t.info; }
¿ì¼± ¾Æ·¡·ÎºÎÅÍ Àüü¸¦ ÁÖ»ç ÇØ, ÀÎÁ¢ÇÏ´Â 2°³ÀÇ ·¹ÄÚµåÀÇ ´ë¼Ò ¼ø¼°¡ À߸øµÇ¾ú´Ù (ÀÌ)¶ó°í ÇØ 2°³(»ì)À» ¹Ù²ã ³Ö´Â´Ù. ÀÌ ÁÖ»ç·Î, Á¦ÀÏÄ¡ÀÇ ÀÛÀº(°¡º±´Ù) ·¹ÄÚµå ÇÏÁö¸¸ 1¹ø»ó¿¡ ºÎ»óÇÑ´Ù. ´ÙÀ½¿¡ ¾Æ·¡¿¡¼ »ó2¹ø°ÀÇ ·¹ÄÚµå±îÁö ÁÖ»ç ÇØ ÀÌ¿ô³¢¸®¸¦ ÇÊ¿ä¿¡ µû¶ó¼ ¹Ù²ã ³Ö´Â °ÍÀ¸·Î, ±× ÁßÀÇ ÃÖ¼ÒÀÇ °ÍÀÌ À§·ÎºÎÅÍ 2¹ø°ÀÇ ·¹Äڵ忡 ºÎ»óÇÑ´Ù. ÀÌ¿Í °°ÀÌ ¸¶Áö¸· ·¹ÄÚµå±îÁö ¹Ýº¹ÇØ Á¾·áÇÑ´Ù.
ÀÌ¿ëÇÏ·Á¸é , µ¥ÀÌÅÍ ±¸Á¶¸¦ ½ÇÁ¦ÀÇ ¹®Á¦¿¡ ¸ÂÃß¾î ¼öÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.