알고리즘 공부
C# 선택 정렬
프로핌
2023. 7. 21. 17:20
선택 정렬은 수열중에서 최솟값을 찾아서 왼쪽 숫자와 비교를하고 더 작으면 교체하는 작업을 계속해서 오름차순으로
정렬하는 알고리즘이다.
수열중에서 최솟값을 찾을 때는 선형 탐색 사용
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 선택정렬
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int index = 0;
int[] a = new int[n];
string[] arr = Console.ReadLine().Split();
for (int i = 0; i < a.Length; i++)
{
a[i] = int.Parse(arr[i]);
}
for (int i = 0; i < a.Length; i++)
{
int min = int.MaxValue;
for (int j = i + 1; j < a.Length; j++)
{
if (a[j] < min)
{
min = a[j];
index = j;
}
}
if (a[i] > a[index])
{
int temp;
temp = a[i];
a[i] = a[index];
a[index] = temp;
}
}
foreach (int b in a)
{
Console.Write($"{b} ");
}
}
}
}
이렇게 코드를 짜면 수열중에 최솟값을 찾은다음에 왼쪽 숫자와 비교를하고 더 작으면 교체를 하면서 오름차순으로 정렬하는 선택 정렬 알고리즘이 완성된다.