2018년 6월 24일 일요일

C# 자료구조


[] 배열 : 
  값으로 검색할 필요 없는 경우( 해야한다면 HashTable 이 빠르다 )
  검색시 키가 숫자인 경우 ( 키가 숫자가 아니면 Dictionary 가 빠르다 )
  맨 앞 또는 맨 뒤만 접근 하는 경우 Queue, Stack 이 빠르다


동적배열( ArrayList, List<T> ) :
           ArrayList 는 자료형에 상관 없이 아무거나 넣는 구조
           List 는 특정 자료형을 선택하여 같은 종류의 것암 넣는 구조
  배열의 크기를 확정하지 않고 유동적으로 써야 할 때
 
  검색 코드 ->
  Transform t = myList.Find( delegate(Transform tm) { return tm.name == "name"; } );



Linked List :
           노드가 다음/이전 노드의 포인터를 갖고 있다
  삽입/삭제 빠르다( 위의 표 검색 값은 O(n)으로 표기 되었지만 O(1)임 )
  검색은 전체 검색을 함 비효율


Dictionary :
           키값으로 문자도 쓸수 있고 삽입, 삭제, 검색 골고루 효율적
  단점 찾아봐야함


HashTable :
           Generic 형식이 아닌 Object를 그대로 저장하는 방식
           C#에서는 형 변환에 자원을 많이 소비하기 때문에 Dictionary가 속도면에서 효율적

           
HashSet : 
           Key-Value 구조가 아니라 유니크한 값(Value)로만 이루어져 있음
           
           



















2018년 6월 21일 목요일

C언어 출력타입 %d %s

%d: 10진수(정수형)
%i: %d

%f: 실수형
%F: 무한수 표현

%e: 지수형

%o: 8진수

%x: 16진수 소문자
%X: 16진수 대문자

%u: 부호없는 10진수

%g: 실수형, 크기 작으면 %f 크면 %e

%p: 포인터의 주소

%c: 문자
%C: %c

%s: 문자열

%n: ?