2016. 12. 15. 09:45ㆍC# 콘솔( Console )/예제
ex) 배열을 이용한 오름차순 정렬 알고리즘
static void Main(string[] args) { Console.WriteLine("오름차순 정렬 프로그램"); int[] arr = { 5, 7, 1, 4, 8, 9, 10, 2, 3, 6 }; int first_num = 0, second_num = 0; for (first_num = 0; first_num < arr.Length; first_num++) { for (second_num = 0; second_num < arr.Length; second_num++) { if(arr[first_num]>arr[second_num]) { Console.Write("\n기준 : arr[{0}]\t비교 : arr[{1}]\n", first_num, second_num); Console.Write("swap전 : "); foreach (int arr2 in arr) { Console.Write("{0} ", arr2); } swap(ref arr[first_num], ref arr[second_num]); Console.Write("\nswap후 : "); foreach (int arr2 in arr) { Console.Write("{0} ", arr2); } Console.WriteLine(); } } } } static void swap(ref int num1, ref int num2) { int temp = num1; num1 = num2; num2 = temp; }
|
해설)
1. int[] arr = { 5, 7, 1, 4, 8, 9, 10, 2, 3, 6 }; -> arr 변수명을 가지고 크기가 10인 정수형 배열을 선언 후 값을 지정하여 초기화하였습니다. 2. int first_num = 0, second_num = 0; -> 기준값을 저장할 변수는 정수형이고 first_num 변수명가지고, 비교값을 저장할 변수는 정수형이고 second_num 변수명으로 선언 후 초기화하였습니다. 3. 기준값을 정의할 반복문 for()문 ( for (first_num = 0; first_num < arr.Length; first_num++) ) -> 초기값 ( first_num = 0 ) : 배열의 Index를 처음부터 시작하기위해 0으로 초기화하였습니다. -> 조건값 ( first_num < arr.Length ) : 배열의 Index값이 arr배열의 크기보다 작을 때 for()문이 실행하하도록 설정하였습니다. -> 증감값 ( first_num++ ) : for()문이 실행 후 기준값을 변경하기위해 배열의 Index값을 1증가시켰습니다. 4. 비교값을 정의할 반복문 for()문 ( for (second_num = 0; second_num < arr.Length; second_num++) ) -> 초기값 ( second_num = 0 ) : 배열의 Index를 처음부터 시작하기위해 0으로 초기화하였습니다. -> 조건값 ( second_num < arr.Length ) : 배열의 Index값이 arr배열의 크기보다 작을 때 for()문이 실행하하도록 설정하였습니다. -> 증감값 ( second_num++ ) : for()문이 실행 후 비교값을 변경하기위해 배열의 Index값을 1증가시켰습니다. 5. 중첩 for()문의 실행 6. 기준값을 비교값과 비교 ( if(arr[first_num]>arr[second_num]) ) -> 기준값이 비교값보다 크면 swap함수를 실행하게됩니다. 7. foreach foreach8. swap함수 ( swap(ref arr[first_num], ref arr[second_num]) ) 메소드를 이용한 Swap메소드 ( Call By Reference ) |
'C# 콘솔( Console ) > 예제' 카테고리의 다른 글
1~100까지 수 더하기 (0) | 2017.01.20 |
---|---|
배열을 이용한 내림차순 정렬 알고리즘 (0) | 2016.12.20 |
Console.ReadLine()문 - 문자열 (0) | 2016.12.13 |
Console.ReadLine()문 - 숫자, 문자 (0) | 2016.12.13 |