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¹øÂ°ÀÇ ·¹Äڵ忡 ºÎ»óÇÑ´Ù. ÀÌ¿Í °°ÀÌ ¸¶Áö¸· ·¹ÄÚµå±îÁö ¹Ýº¹ÇØ Á¾·áÇÑ´Ù.
ÀÌ¿ëÇÏ·Á¸é , µ¥ÀÌÅÍ ±¸Á¶¸¦ ½ÇÁ¦ÀÇ ¹®Á¦¿¡ ¸ÂÃß¾î ¼öÁ¤ÇÒ Çʿ䰡 ÀÖ´Ù.