카테고리 없음 / / 2015. 8. 17. 15:22

[알고리즘]c++로 구현한 버블정렬 알고리즘 소스코드

반응형

가장 간단한 정렬 알고리즘중 하나인 버블 정렬(버블 소트)를 c++로 구현해 보았다.


이 정렬의 시간복잡도는 for문이 두개 중첩되어 있기 때문에  O(n^2)이다.



#include<iostream>
#define SIZE 50 //배열 크기 매크로 상수
#include <time.h>
using namespace std;

void swap(int*a, int*b)//temp 임시 변수가 필요없는 swap함수
{
	*a = *b-*a;
	*b = *b - *a;
	*a =*a + *b;
}

void bubblesort(int* arr,int N) //오름차순 버블정렬
{
	for (int i = N;i > 0;i--) //N-1번원소부터 0번원소까지 정렬 
	{
		for (int j = 1;j < i;j++) 
		{
			
			if (arr[j] < arr[j - 1]) //뒤의원소가 앞의 원소보다 작으면
				swap(&arr[j], &arr[j - 1]); //둘을 바꾼다
			
		//반복해서 원소를 교환하여 i-1번에 해당하는 원소를 위치시킴

		}
		//i-1번째 원소 정렬됨

	}
	
}
void main()
{

	srand(time(NULL));
	int arr[SIZE];
	//랜덤배열 생성
	for (int j = 0;j < SIZE;j++) 
		arr[j] = rand() % 999 + 1;
	

	//버블소트 실행 전 배열 출력
	for (int i = 0;i < SIZE;i++)
		cout << arr[i] << " ";

	bubblesort(arr, SIZE);
	cout << endl << endl;

	//버블소트 실행 수 배열 출력
	bubblesort(arr, SIZE);
	for (int i = 0;i < SIZE;i++)
		cout << arr[i] << " ";

}


실행결과 : 






반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유
//목차