선택정렬은 키를 기준으로 나머지 값들중 최소 또는 최대값을 선택하여 , 이값을
키값과 바꾸면서 정렬하는 형태이다.
using System;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string str = Console.ReadLine(); // 7,4,2,1,5 형태로 입력
string[] arr = str.Split(','); //콤마를기준으로 값을분리하여 문자열배열에 담기
//문자열 배열의 값을 숫자배열에 옮기기
int[] iarr = Array.ConvertAll(arr, s => int.Parse(s));
//정렬하기전에 먼저 출력해보자.
for (int i = 0; i < iarr.Length; i++)
{
Console.Write(iarr[i] + " ");
}
Console.WriteLine("\n------------");
//iarr 배열을 선택정렬로 오름차순 정렬한 후 출력하세요.
int minIndex = 0; //최소값을 위치를 지정하는 값
for (int i = 0; i < iarr.Length - 1; i++)
{
minIndex = i; //선택된 자리를 최소값이 있는 위치라 가정
for (int j = i + 1; j < iarr.Length; j++)
{
if (iarr[minIndex] > iarr[j])
{
minIndex = j;
}
}
//i값과 minindex가 같다면 값을 바꿀 필요없다.
if (i != minIndex)
{
int tmp = iarr[i];
iarr[i] = iarr[minIndex];
iarr[minIndex] = tmp;
}
}
//정렬 후
for (int i = 0; i < iarr.Length; i++)
{
Console.Write(iarr[i] + " ");
}
Console.WriteLine();
}
}
}
[결과]
7,8,3,9,2
7 8 3 9 2
-----------
2 3 7 8 9
댓글 없음:
댓글 쓰기