본문 바로가기
Programming/컴퓨터프로그래밍및실습

[컴프실] 제10장-2: 정렬

by Lizardee 2023. 7. 23.
정렬이란?

: 물건을 크기순으로 오름차순이나 내림차순으로 나열하는 것

 

 

선택정렬(selection sort)

: 정렬이 안 된 숫자들 중에서 최솟값을 선택하여 배열의 첫 번째 요소와 교환

 

//선택정렬
#include <stdio.h>
#define SIZE 10

int main(void) {
	int list[SIZE] = { 0, 3, 4, 1, 9, 8, 2, 5, 6, 7 };
	int i, j, temp, least;

	for (i = 0; i < SIZE - 1; i++) {
		least = i; //최솟값 = i
		for (j = i + 1; j < SIZE; j++) //i뒷부분부터 i와 비교함
			if (list[j] < list[least]) //i보다 작으면 least = j
				least = j;
		temp = list[i]; //list[i]와 list[least]를 서로 교환함
		list[i] = list[least];
		list[least] = temp;
	}

	for (i = 0; i < SIZE; i++)
		printf("%d ", list[i]);
	printf("\n");

	return 0;
}

 

 

순차탐색

: 배열의 원소를 순서대로 하나씩 꺼내서 탐색키와 비교하여 원하는 값을 찾아가는 방법

//순차탐색
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define SIZE 10

int main(void) {
	int i;
	int x; //탐색할 값
	int arr[SIZE] = { 1, 2, 3, 5, 8, 9, 6, 7, 0, 4 };
	
	printf("탐색할 값을 입력하시오: ");
	scanf("%d", &x);

	for (i = 0; i < SIZE; i++) {
		if (arr[i] == x) {
			printf("탐색 성공 인덱스 = %d\n", i);
			printf("탐색 종료\n");
		}
	}

	return 0;
}