CS

선택 정렬과 버블 정렬

llIlIIllII 2023. 11. 16. 14:07

선택 정렬

배열을 반복하여 최소값을 찾아 해당 위치에 배치하는 방식으로 동작합니다. 매번 가장 작은 값을 찾아서 배열의 앞부분부터 순서대로 정렬해가는 방식입니다.

 

int n = arr.Length;
        
for (int i = 0; i < n - 1; i++)
{
	int min_idx = i;
            
	for (int j = i + 1; j < n; j++)
    	{
		if (arr[j] < arr[min_idx])
        	{
			min_idx = j;
		}
	}
            
	int temp = arr[min_idx];
	arr[min_idx] = arr[i];
	arr[i] = temp;
}

 

버블 정렬

인접한 두 원소를 비교하여 순서가 잘못된 경우 서로 위치를 교환하는 정렬 알고리즘입니다. 가장 큰(또는 작은) 값이 배열의 마지막으로 이동할 때까지 반복하여 정렬하는 방식입니다.

int n = arr.Length;

for (int i = 0; i < n - 1; i++)
{
	for (int j = 0; j < n - i - 1; j++)
    	{
		if (arr[j] > arr[j + 1])
        	{
			int temp = arr[j];
			arr[j] = arr[j + 1];
			arr[j + 1] = temp;
		}
	}
}