알고리즘 - 버블정렬

김혜진·2022년 9월 19일
0

알고리즘

목록 보기
6/13

정렬

  • 임의의 자료 집합을 일정한 기준에 따라 나열하는 것이다.
  • 자료의 작은 것을 먼저 나열하는 것을 오름차순이라고 한다.
  • 자료의 큰 것을 먼저 나열하는 것을 내림차순이라고 한다.
  • 정렬의 원리는 레코드의 키들을 비교해보고 순서를 바꿀 필요가 있는 레코드를 정렬이 완료될 때까지 반복한다.
  • 가장 간단한 정렬 알고리즘이 버블 정렬이다.
  • 버블 정렬은 레코드의 선두부터 인접 요소를 비교하여 큰 값을 뒤로 보내는 방식으로 정렬한다.

버블정렬

  • 두 개의 루프로 구성되어있는데 i 루프는 문자열 선두에서부터 뒤로 이동하고 j 루프는 매 i에 대해 num-i까지 비교 및 교환을 반복한다.
#include<stdio.h>
#include<string.h>

void main()
{
	char str[] = "winapi";

	printf("정렬 전의 문자열 : %s\n", str);

	int num = strlen(str); // 문자열의 길이 리턴하는 함수
	
	for (int i = 0; i < num-1; i++)
	{
		for (int j = 1; j < num - i; j++)
		{
			if (str[j-1] > str[j])
			{
				char temp;
				temp = str[j - 1];
				str[j - 1] = str[j];
				str[j] = temp;
			}
		}
	}

	// 결과: winapi
	printf("정렬 된 문자열 : %s\n", str);

}
profile
알고 쓰자!

0개의 댓글