버블정렬(Bubble Sort)은 인접한 숫자를 비교하여 자기보다 큰 수가 나오면 교환하는 정렬 알고리즘이다. 

 

시간복잡도는 O(n^2)로 상당히 느리지만 구현히 쉽고 안정적이다. 

 

메모리 사용 공간 : n개의 원소에 대하여 n개의 메모리를 사용한다. 

 

다음은 '오름차순'으로 정렬하는 코드다.

 

#include <stdio.h>
#include <stdlib.h>
#define SWAP(a,b) {int t=a; a=b; b=t; };

int BubbleSort(int *dataArray, int length)
{
	int i, j;
	for (i = 0; i < length - 1; i++)
	{
		for (j = 0; j < length - i -1; j++)
		{
			if (dataArray[j]>dataArray[j + 1])    //앞의 수가 더 클 경우 자리교환 ! 
			{
				SWAP(dataArray[j], dataArray[j + 1]);
			}
		}
	}
}

int main()
{
	int *dataArray;
	int length=0;
	int i = 0;

	printf("배열의 크기를 입력하세요:");
	scanf("%d", &length);
	dataArray = (int*)malloc(sizeof(int)*length);
	//입력 
	printf("크기 %d배열의 원소를 입력하세요: ", length);
	for (i = 0; i < length; i++)
	{
		scanf("%d", &dataArray[i]);
	}

	BubbleSort(dataArray, length);
	//출력
	for (i = 0; i < length; i++)
		printf("%d ", dataArray[i]);

	return 0;
}

 

728x90

의미 하나님의 초대장을 받고 티스토리를 시작하게 되었습니다. (감사해요!)

항상 티스토리 글을 읽기만 하다가 직접 운영하게 되니 정말 설레고 뭔가 새내기가 된 느낌입니다.

저에게도 누군가에게도 도움이 되는 공간이 되었으면 합니다. ^^


ps. 티스토리 소개해준 동빈찡 고마워:)

728x90

+ Recent posts