<들어가기에 앞서>
c언어로 작성된 코드입니다.
<선택 정렬 응용>
- 문자열을 선택 정렬하는 코드를 작성해보았습니다.
- 포인터 배열을 이용하여 각각의 문자열을 저장한 후 선택 정렬을 실시합니다.
<알아야 할 개념>
- strcmp() 함수
- 이중 포인터
- 포인터 배열
<소스 코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#include <stdio.h>
#include <string.h>
void swap(char **xp,char **yp);
void printStringArray(char *arr[],int size);
void selectionSort(char *arr[],int n);
int main(void)
{
char *arr[] = { "Bottle","Applepie","Pineapple","Apple","Orange" };
int n = sizeof(arr) / sizeof(arr[0]);
printStringArray(arr,n);
selectionSort(arr, n);
printStringArray(arr,n);
}
void swap(char **xp,char **yp)
{
char *temp;
temp = *xp;
*xp = *yp;
*yp = temp;
}
void selectionSort(char *arr[],int n)
{
int min_index,i,j;
for (i = 0; i < n - 1; i++)
{
min_index = i;
for (j = i + 1; j < n; j++)
{
if (strcmp(arr[min_index],arr[j]) == 1)
{
min_index = j;
}
}
swap(&arr[min_index],&arr[i]);
}
}
void printStringArray(char *arr[],int size)
{
for (int i = 0; i < size; i++)
printf("%s\n",arr[i]);
puts("");
}
|
cs |
<실행 결과>

틀린 부분 있으면 피드백 부탁드립니다.
감사합니다. 좋은 하루 보내세요~!
'자료구조' 카테고리의 다른 글
자료구조) 연결 리스트로 구현한 다항식 덧셈 프로그램 (1) | 2020.06.02 |
---|---|
자료구조) 역순 연결 리스트(reverse linked list) (4) | 2020.06.01 |
알고리즘) 선택 정렬(Selection Sort) (1/2) (0) | 2020.05.23 |
자료구조) Queue를 이용한 은행 시뮬레이션 프로그램 (1) | 2020.05.04 |