해독 코드: 데이터 구조 안내서.

간단한 소개.


왜 우리는 데이터 구조가 필요합니까?데이터 구조가 없으면 우리는 알고리즘을 해결할 수 없다.이런 상황에서 만약 우리가 단지 즐거움을 위해 인코딩을 한다면, 우리도 반드시 알고리즘이 필요한 것은 아니다.그러나 녹색을 보아야 하는 사람들, 나 자신을 포함한 알고리즘은 프로그래밍 면접에서 성공할 수 있는 강력한 필수 조건이다.또한 프로그래밍 과정에서 데이터 구조를 자주 볼 수 있습니다.데이터 구조는 효과적으로 사용할 수 있도록 컴퓨터의 데이터를 조직하는 특수한 방식이 있다.만약 더 좋은 컴퓨터 프로그램을 만드는 것이 목표라면 데이터 구조의 개념을 이해하는 것이 인코딩 능력을 더욱 효율적으로 만드는 데 도움이 될 것이다.언뜻 보기에 수학과 숫자의 대량 존재만을 바탕으로 책, 교과서 등에서 데이터 구조를 배우는 것은 정말 무섭다.만약 네가 원인을 이해한다면 그것들은 그렇게 복잡하지 않게 변할 것이다.

데이터 구조를 알아야 합니다!


그래서 이 점을 깨고 더 잘 이해할 수 있는 방법을 생각해 보자!상상해 봐, 너는 케이크를 구워야 해. 너는 밀가루밖에 없어.설탕, 바닐라 에센스, 계란 등 다른 모든 조미료가 없으면 케이크를 구울 수 없습니다. 지금 우리가 필요한 모든 조미료를 결합하면 우리는 장사를 할 수 있습니다. 우리는 케이크를 구울 수 있습니다.같은 유형도 데이터 구조에 적용되며, 하나의 데이터 항목을 무용지물로 만들지만, 한데 조합할 때, 우리는 이 데이터 항목을 유용한 복합 데이터로 볼 수 있다.따라서 이러한 데이터는 특정한 데이터 구조에 저장되기 때문에 정확한 데이터 구조를 선택하는 것이 매우 중요하다.가장 좋은 사용 방식으로 여겨지는 데이터 구조는 하나도 없고 모든 데이터 구조는 장단점이 있다.우리는 데이터 구조를 선택해서 데이터를 조작하는 방법을 더 잘 이해할 수 있다. 그것이 어떻게 이런 항목을 추가, 검색, 정렬, 검색하는지 보는 것이다.
.add()
.get()
.sort()
.search()
이것은 큰 O 기호라고 불린다.그것은 함수의 성장 속도를 묘사했다.따라서 만약에 우리가 하나의 데이터 항목을 가지고 있고 기존 함수에 대량의 데이터 항목을 추가한다면 모든 작업에 필요한 시간을 계산할 것이다.

데이터 구조.

  • 체인 시계
  • 체인 테이블은 노드로 구성된 선형 데이터 구조다.하나의 노드는 하나의 값 (숫자일 수 있음) 과 이 목록의 다음 노드를 가리키는 인용 링크로 구성되어 있다.그래서 그것은 지속적이고 끊임없는 선형 구조이다.체인 테이블의 시작은head이고 마지막 노드는tail 또는null이다.

    찬성의 의견.

  • 노드 추가 기능
  • 포인터가 가리키는 위치를 간단하게 변경할 수 있기 때문에 노드를 잘 삭제할 수 있다.
  • 기만하다.

  • 노드를 검색하거나 검색하는 데 그다지 잘하지 못한다. 왜냐하면 옆에 있는 노드만 알고 있기 때문이다.
  • 어레이
  • 수조는 거의 모든 프로그래밍 언어에 익숙하기 때문에 익숙해져야 할 수도 있습니다.수조는 인접한 메모리 위치에 저장된 데이터 항목의 집합이다.데이터 항목의 모든 위치의 메모리를 저장합니다.

    찬성의 의견.

  • 항목이 특정한 메모리 위치에 저장되어 있기 때문에 검색과 검색에 뛰어나다.이것은 그것들을 쉽게 되찾을 수 있게 한다.
  • 기만하다.


  • 항목을 추가하면 때때로 문제가 발생할 수 있습니다.어레이 크기가 커지면 메모리에 저장된 다른 항목에 붕괴될 수 있습니다.
  • 해시표
  • 해시표는 키와 값의 집합을 저장한다.그것은 해시 테이블에 키를 준 후에 그 값을 되돌릴 수 있기 때문에 중요한 데이터 구조 형식이다.비록 이것은 수조와 유사하지만, 해시표의 특수한 점은 해시 함수를 제공하면 자동으로 데이터를 검색하고, 수조처럼 인접해서 저장할 필요가 없다는 것이다.

    찬성의 의견.

  • 항목이 메모리 위치로 인해 붕괴되지 않기 때문에 추가, 검색, 삭제에 뛰어나다.
  • 기만하다.

  • 때때로 두 키가 같은 값으로 산열될 수 있는데 이를 충돌이라고 부른다.이것은 암호화 같은 충돌 방지 산열 함수를 통해 해결할 수 있다.암호학은 알고리즘을 사용하여 값을 변환하기 때문에 아날로그 값을 되돌려 주지 않는다.
  • 스택 및 큐
  • 창고와 대기열은 서로 매우 비슷하며, 그것들은 수조와 같은 구조로 구축된 것이다.Stack이 생기면, 네가 마지막으로 넣은 것이 바로 첫 번째로 나간 것이다.두 가지 방법을 사용했다.()를 반올림하다.pop () 을 사용하여 이 동작을 실행합니다.다른 한편, 대기열은 첫 번째로 들어간 항목으로 첫 번째로 떠난 항목이다.항목을 끝에 추가하는 것을 라고 한다.enqueue () 를 앞에서 항목을 제거하는 것은 매우 어렵다.나열하다

    찬성의 의견.

  • 추가 및 삭제의 효율성.
  • 기만하다.

  • 애플리케이션에 따라 사용이 제한될 수 있습니다.
  • 이것들은 모두 기억해야 할 몇 가지 중요한 데이터 구조이다. 다음에 나는 도형과 트리 자체를 소개할 것이다. 왜냐하면 대량의 정보를 볼 필요가 있기 때문이다.다음 프로그래머까지...
    다음은 알고리즘을 배우는 자원들입니다. 당신의 프로그래밍 면접을 준비하세요!

    리소스

  • Leet Code
  • Hacker Rank
  • Code Wars
  • 좋은 웹페이지 즐겨찾기