[c#닷넷으로구현한 선택정렬, 셀렉션정렬/소트]-그림 및 소스

홈 > 공유팁! > 프로그램 관련
프로그램 관련

[c#닷넷으로구현한 선택정렬, 셀렉션정렬/소트]-그림 및 소스

꽁스짱 0 878

[c#닷넷으로구현한 선택정렬, 셀렉션정렬/소트]-그림 및 소스


선택정렬은 키를 기준으로 나머지 값들중 최소 또는 최대값을 선택하여 , 이값을
키값과 바꾸면서 정렬하는 형태이다.
 
 




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

 
0 Comments
제목