목록나중에복습 (4)
Vienna
1. 실습_Property using System; namespace _9장_Property_326page { class BirthdayInfo { private string name; private DateTime birthday; public string Name { get { return name; } set { name = value; } } public DateTime Birthday { get { return birthday; } set { birthday = value; } } public int Age { get { return new DateTime(DateTime.Now.Subtract(birthday).Ticks).Year; } } } class Program { static void..

Q11. Q10의 알고리즘은 삽입할 위치의 검색은 빠르지만 삽입을 위해 요소를 하나씩 뒤쪽으로 미는 작업 비용이 단순 삽입 정렬 알고리즘과 같습니다. 요소를 뒤쪽으로 미는 작업을 표준 라이브러리의 memmove 함수를 사용해서 구현하면 비용을 줄여 좀 더 빠른 속도를 얻을 수 있습니다. 이 아이디어를 바탕으로 이진 삽입 정렬 함수를 수정하세요. 우선 memmove부터 찾아봐야겠다. 설명 해석: source의 num만큼의? 값들을 복사해 destination으로 복사한다. 복사는 중간버퍼를 사용하는데, 이미 데이터가 있다면 덮어 씌워질 수 있다. source와 destication 포인터가 가리키는 요소의 타입과 이 기능은 관련이 없다. null 체크는 하지 않고 항상 num bytes 만큼 복사한다. 오..
Q10. 단순 삽입 정렬을 배열의 요소 개수가 많아지면 많아질수록 요소 삽입에 필요한 비교, 대입 비용이 무시할 수 없을 정도로 커집니다. 이때 배열에서 이미 정렬된 부분은 이진 검색을 사용할 수 있기 때문에 삽입할 위치를 더 빨리 찾을 수 있습니다. 이진 검색을 사용하여 프로그램을 수정하세요. 정답: idx = pl

Q.8. 요소의 삽입 과정을 자세하게 출력할 수 있도록 단순 삽입 정렬 프로그램을 수정하세요. 오른쪽처럼 현재 선택한 요소 아래에 기호 +, 삽입하는 위치의 요소 아래에 기호 ^, 그 사이에 기호 -를 출력하세요. 삽입하지 않는(요소의 이동이 필요없는) 경우에는 선택한 요소 아래에 +만 출력하면 됩니다. 내 답변: void insertion(int a[], int n) { int j; for (int i = 1; i 0 && a[j - 1] > tmp; j--) { a[j] = a[j - 1..