본문 바로가기
WORK/Sotfware

sort

by KANG Stroy 2012. 6. 18.
728x90
728x90

#include <stdio.h>

void sort(int* ptr, int len);

void main()
{
	int array[] = { 5, 1, 3, 2, 4};
	int* ptr = array;
	int len = 0;
	int i;

	len = sizeof(array)/sizeof(array[0]); // array value

 	for(i=0; i<len; i++) {
		printf(" %d", array[i]);
	}
  	printf("\n");
    
    sort(ptr, len); // sort

	for(i=0; i<len; i++) {
		printf(" %d", array[i]);
	}
	printf("\n");
}

void sort(int* ptr, int len) {	// ptr은 값  // len 은 길이
	int i, j, a, temp;
	
    for(i=0; i<len-1; i++) {
		for(j=i+1; j<len; j++) 
		{
			if(*(ptr+i)> *(ptr+j)) { // 크면 A와 B를 교환 한다.
			temp = *(ptr + i);
			*(ptr + i) = *(ptr +j);
			*(ptr + j) = temp;
		}
		
		for(a = 0; a<len; a++)	// 변경 된 사항에 대해서 출력
			printf("  %d",*(ptr+a));
        
        printf(" \n");
    	}
		printf(" \n");
	}
}

다시 한번 배열을 이용해서 ... 

void sort(int* ptr, int len) {	// ptr은 값  // len 은 길이
	int c = 0,d = 0;
	unsigned int swap_data;	

    					// 0 ~ 19 ( 20 개 ) 
	for (c = 0; c < (len) - 1; c++)		// 배열의 값 만큼 확인한다.
	{
		for (d = 0; d < (len) - c - 1; d++)	
		{
			swap_data = 0;				// 값을 변경 한다. 
			
			if (save_data[d] > save_data[d+1]) /* For decreasing order use < */
			{
				swap_data = save_data[d];
				save_data[d] = save_data[d+1];
				save_data[d+1] = swap_data;
			}
		}
		printf("\r\nsort Test\r\n");
	}
}

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

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

  1  2  3  5  4 
  1  2  3  5  4 

  1  2  3  4  5 

 1 2 3 4 5
728x90

'WORK > Sotfware' 카테고리의 다른 글

함수 포인터  (0) 2012.06.20
포인터 개념  (0) 2012.06.20
hex->ascii / ascii->hex  (0) 2012.05.07
von neumann architecture vs harvard architecture  (0) 2012.05.04
C언어 자료형의 크기  (0) 2012.05.04

댓글