===알고리즘 및 람다===
1.람다에 대해서 (자세히...)
형식: (parameter_list) => expression
- =>연산자는 입력 연산자이다. 그저 매개변수를 전달하는 역할
//익명 메소드
static void Main (string[] args)
{
Calculate calc = delegate(int a, int b)
{
return a+b;
}
}
//람다식
delegate int Calculate(int a, int b);
static void Main(string[] args)
{
//c# 컴파일러가 형식 유추(Type Inference) 제공
Calculate calc = (a, b ) => a + b;
}
-문장을 람다식에 적고 싶을 경우
delegate void Dosomethin();
static void Main (string[] args)
{
DoSomething Doit = () => //매개변수가 없기때문에 아무것도 넣지 않음.
{
Console.WriteLine("첫번째 문장");
Console.WriteLine("두번째 문장");
Console.WriteLine("세번째 문장");
}
Doit();
}
2.정렬 알고리즘
퀵 정렬 (Quick Sort)
-피벗을 기준으로 작은요소들은 왼쪽, 큰요소들은 오른쪽으로 분할하고 재귀적으로 정렬하는 방법
병합 정렬 (Merge Sort)
-병합 정렬은 배열을 반으로 나누고, 각 부분을 재귀적으로 정렬한후, 병합하는 방법입니다
1.어제 Delegate에 이어 람다를 공부한것처럼 이해가 가지 않는 개념에 대해 시간을 많이 투자해서 정확히 알려하는 노력은 분명히 의미가 있는것 같다.
2.알고리즘은 항상 어렵고 새롭지만 이번에도 역시 글자 그대로 이해하는 것은 가능하지만 실제로 내가 구현을 하거나 코딩테스트가 주어졌을때 스스로의 힘으로 풀 수 있냐고 물었을 때의 대답은 아직은 'NO' 인것 같다. 강의를 반복해서 들으며 사이드 프로젝트나 과제들에서 직접 구현하며 이해하는 노력을 하자.
3.알고리즘을 공부할때 좋은 방법