티스토리 뷰

728x90

#include<stdio.h>

#include<stdlib.h> // rand(), srand() 함수를 사용하기 위한 헤더

#include<time.h> // time(), clock() 함수를 사용하기 위한 헤더


int N = 100000; // 개수 변수 (100000개의 숫자 저장한다)


void selection_sorting(int data[], int n) // Selection Sorting 함수 (오름차순)

{

int i, j;

int temp; // 임시 변수

for(i = 0; i < n; i++) // 배열의 기준값 설정

{

for(j = i + 1; j < n; j++) // 배열의 비교값 설정 (기준값 다음 값부터 비교)

{

if(data[i] > data[j]) // 해당 배열에서 최대값인 경우 위치 변경

{

temp = data[i];

data[i] = data[j];

data[j] = temp;

}

}

}

}


void print_array(int data[], int n) // 배열 출력 함수

{

int i;

for(i = 0; i < n; i++)

{

printf("%3d ", data[i]);

}

}


int main(void)

{

int i;

double start, end;

int arr[100000]; // 100000개의 변수가 들어갈 배열을 확보한다

start = clock(); // 시작 시간 저장

srand(time(NULL)); // 난수 발생기를 초기화 (time(NULL) 현재 시간을 반환하는 함수)

for(i = 0; i < N; i++) // 100000(N)개의 10000(limit)이하의 난수를 생성한다

{

arr[i] = rand() % 10000;

}

printf("■■■■■■■■ 정렬 ■■■■■■■■ \n");

print_array(arr, N); // 정렬 전의 배열을 출력한다

printf("\n\n");

printf("■■■■■■■■ 정렬 ■■■■■■■■ \n");

selection_sorting(arr, N); // Selection Sorting 이용해 배열을 오름차순으로 정렬한다

print_array(arr, N); // 정렬 후의 배열을 출력한다

printf("\n\n");

end = clock(); // 종료 시간 저장

printf("elapsed time is %.2f sec \n", (end - start)/1000); // 연산에 걸린 시간을 출력한다

return 0;

}


728x90

'헉!! > C언어' 카테고리의 다른 글

110330  (0) 2011.03.30
Line Ending - CR+LF / LF / CR  (0) 2010.11.17