버블 정렬 c 0609

|
ㄹㄹ
ㄹㄹ
버블 정렬
#include <stdio.h>

void bubble_sort(int array[], int count);
void swap(int *px, int *py);
void printVector(int V[], int n);

int main()
{
	int vector[5] = {5, 4, 3, 2, 1};
	bubble_sort(vector, 5);

	return 0;
}

void bubble_sort(int array[], int count)
{
	int i;
	int j;

	for (i = 0; i < count - 1; ++i)
	{
		for (j = 0; j < count - 1 - i; ++j)
		{
			if (array[j] > array[j+1])
			{
				swap(&array[j], &array[j+1]);
				printVector(array, 5);
			}
		}
		printf("\n");
	}
}

void swap(int *px, int *py)
{
	int temp = *px;
	*px = *py;
	*py = temp;
}

void printVector(int V[], int n)
{
	int i;
	for (i = 0; i < n; ++i)
	{
		printf("%5d", V[i]);
	}
	printf("\n");
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    4    5    3    2    1
    4    3    5    2    1
    4    3    2    5    1
    4    3    2    1    5

    3    4    2    1    5
    3    2    4    1    5
    3    2    1    4    5

    2    3    1    4    5
    2    1    3    4    5

    1    2    3    4    5









#include <stdio.h>

int main()
{
    int i, j;
    int array[3][4] = {
    	{15, 23, 45, 56},
    	{34, 53, 76, 23},
    	{98, 29, 48, 43}};

    int *p = *array;

    for (i = 0; i < 12; ++i)
    {
    	printf("%d ", *(p+i));
    }
    printf("\n");

    return 0;
}





배열과 포인터 값과 주소 관계
#include <stdio.h>

int main()
{
	int i, j;
	int array[3][4] = {
		{15, 23, 45, 56},
		{34, 53, 76, 23},
		{98, 29, 48, 43}};

	int *p = *array;

	for (i = 0; i < 12; ++i)
	{
		printf("%d ", *(p+i));
	}
	printf("\n");

	printf("%p\n", &array[4]);
	printf("%p\n", array+4);
	printf("\n");

	printf("%p\n", array);
	printf("%p\n", array[0]);
	printf("%p\n", &array[0][0]);
	printf("\n");

	printf("%p\n", &array[0][0]);
	printf("%p\n", &array[1][0]);
	printf("%p\n", &array[2][0]);
	printf("\n");

	printf("%p\n", array[0]);
	printf("%p\n", array[1]);
	printf("%p\n", array[2]);
	printf("\n");

	printf("%p\n", array+0);
	printf("%p\n", array+1);
	printf("%p\n", array+2);
	printf("\n");

	printf("%p\n", &array+0);
	printf("%p\n", &array+1);
	printf("%p\n", &array+2);
	return 0;
}


Output:
15 23 45 56 34 53 76 23 98 29 48 43 
0xbf560034
0xbf560034

0xbf55fff4
0xbf55fff4
0xbf55fff4

0xbf55fff4
0xbf560004
0xbf560014

0xbf55fff4
0xbf560004
0xbf560014

0xbf55fff4
0xbf560004
0xbf560014

0xbf55fff4
0xbf560024
0xbf560054



'C' 카테고리의 다른 글

문자열  (0) 2010.06.13
구조체  (0) 2010.06.12
다중포인터  (0) 2010.06.08
16진수 0xffffffff의 값 (signed and unsigned)  (0) 2010.06.06
형식 지정자  (0) 2010.06.06
And