아하
생활

생활꿀팁

신중한달팽이140
신중한달팽이140
20.11.08

알고리즘 선택정렬시 걸리는 측정시간에 대해 질문드립니다~

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void SelectionSort(int* a, int n) {

int MinIndex;

for (int i = 0; i < n - 1; i++) {

MinIndex = i;

for (int j = i + 1; j < n; j++) {

if (a[MinIndex] > a[j]) {

MinIndex = j;

}

}

if (MinIndex != i) {

Swap(&a[i], &a[MinIndex]);

}

}

}

void inverse_SelectionSort(int* a, int n) {

int MaxIndex;

for (int i = 0; i < n - 1; i++) {

MaxIndex = i;

for (int j = i + 1; j < n; j++) {

if (a[MaxIndex] < a[j]) {

MaxIndex = j;

}

}

if (MaxIndex != i) {

Swap(&a[i], &a[MaxIndex]);

}

}

}

int main(void) {

int i, A[10], B[100], C[1000], D[10000], E[50000], F[100000];

int seed = time(NULL);

int start, finish, count = 0, count2 = 0;

double duration, meanduration = 0, avgduration = 0;

srand(seed);

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

A[i] = rand() % 10000;

SelectionSort(A, 10);

printf("선택정렬 : ");

PrintSortedArr(A, 10);

(.................)

}

현재 알고리즘을 공부중인 대학생입니다. 선택정렬시에 n이 10,100,1000,10000,50000,100000 일때 난수 생성해서 선택정렬방법으로 걸리는 시간을 측정하는 프로그램을 짜고 있는데 시간 측정하는 부분 (........) 이부분을 잘 모르겠어서 질문드립니다! 이부분 코딩전체를 알려주시면 정말 감사하겠습니다 ㅎㅎ

55글자 더 채워주세요.
1개의 답변이 있어요!
  • pay2id.com
    pay2id.com
    20.11.08

    저는 코딩 보다는 알고리즘을 알려드리겠습니다.

    1. 난수를 생성한후 정렬하기 바로전에,

    start = clock(); 으로 시간을 저장하구요

    2. 원하는 난수 계산이 다 끝난후, 결과 출력하기 바로전에

    end = clock(); 으로 또 시간을 저장합니다

    3. 결과 출력후, 총 걸린 시간은 end - start 하면 나오는 값이

    총 걸린 시간입니다

    위에 내용을 토대로 프로그램 작성하시면 잘 동작하리라 생각합니다^^