js 학습 데이터 구조 및 알고리즘

6162 단어
js 의 데이터 구조
1. 업무 목록, 쇼핑 리스트, 베 스 트 10 등.
적용: 1) 데이터 구조 가 비교적 간단 하 다. 2) 긴 서열 에서 요 소 를 찾 거나 정렬 할 필요 가 없다.
2. 창고
한 무더기 의 접시 --- 추가 삭 제 는 맨 위 에서 만 가능 합 니 다.특징: 스 택 은 후 입 선 출 데이터 구조 라 고 합 니 다.효율 적 인 데이터 구조 로 데 이 터 는 창고 꼭대기 에 만 추가 하거나 삭제 할 수 있 기 때문에 이런 조작 은 매우 빠르다.적용: 데이터 저장 이 만족 한 후에 먼저 나 오 거나 선진 적 인 후에 나 오 는 원리 만 있 으 면 스 택 사용 을 우선 고려 합 니 다.
3. 대열
은행 줄 서기 - 특징: 대열 은 대열 의 끝 에 만 요 소 를 삽입 하고 팀 의 첫 번 째 에서 요 소 를 삭제 할 수 있 습 니 다.적용: 데이터 저장 이 선진 적 인 선 출, 후 입 후 출 의 원 리 를 만족 시 키 면 대기 열 1) 대기 열 은 주로 시간 과 관련 된 곳 에 사 용 됩 니 다. 특히 운영 체제 에서 대기 열 은 다 중 태 스 크 를 실현 하 는 중요 한 메커니즘 입 니 다. 2) 메시지 체 제 는 대기 열 을 통 해 이 루어 질 수 있 고 프로 세 스 스케줄 도 대기 열 을 사용 하여 이 루어 집 니 다.
4. 링크 JS 에서 배열 이 대상 이 되 었 으 나 다른 언어 (예 를 들 어 C 나 자바) 에 비해 효율 이 훨씬 낮 습 니 다.이때 우 리 는 링크 드 - list 를 사용 하여 이 를 대체 하 는 것 을 고려 할 수 있다. 데이터 에 대한 무 작위 접근 을 제외 하고 링크 는 거의 모든 1 차원 배열 을 사용 할 수 있 는 상황 에서 사용 할 수 있다.
5. 사전 사전 은 키 - 값 으로 데 이 터 를 저장 하 는 데이터 구조 로 자바 스 크 립 트 의 Object 류 는 사전 형식 으로 설계 되 었 습 니 다.
6. 해시 해시 해시 (해시 표 라 고도 함) 는 자주 사용 하 는 배열 저장 기술 로 해시 후의 배열 은 신속하게 삽입 하거나 사용 할 수 있다.해시 에 사용 되 는 데이터 구 조 를 산 목록 이 라 고 합 니 다.특징: 산열 표 에 데 이 터 를 삽입, 삭제, 사용 하 는 것 은 매우 빠 르 지만 검색 작업 에 있어 서 는 효율 이 떨어진다.
7. 그림 은 변 의 집합 과 정점 의 집합 으로 구성 된다.지 도 는 우리 주변 에서 흔히 볼 수 있 는 현실 장면 이다. 예 를 들 어 모든 도시 가 특정한 도로 로 연결 되 어 있다.적용: 1) 교통 시스템 은 거리의 사거 리 를 정점 으로 표시 할 수 있 고 가 는 거 리 를 표시 할 수 있다.가중 변 은 제한 속도 나 차도 의 수량 을 나 타 낼 수 있다.이 시스템 으로 최 적의 노선 과 차 가 막 힐 가능성 이 가장 높 은 거 리 를 판단 할 수 있다.2) 모든 운송 시스템 은 그림 으로 모델 링 을 할 수 있다.예 를 들 어 항공 사 는 그림 으로 비행 시스템 을 모델 링 할 수 있다.각 공항 을 정점 으로 보고 두 개의 정점 을 지 나 는 모든 항 로 를 한 변 으로 본다.가중 변 은 한 공항 에서 다른 공항 까지 의 항공 편 비용 이나 두 공항 간 의 거 리 를 나 타 낼 수 있 는데 이것 은 모델 링 대상 이 무엇 인지 에 달 려 있다.
8. 이 진 트 리 와 이 진 트 리 는 컴퓨터 과학 에서 자주 사용 하 는 데이터 구조 이다.나 무 는 비 선형 데이터 구조 로 층 을 나 누 어 데 이 터 를 저장 합 니 다.이 진 트 리 의 각 노드 의 하위 노드 는 두 개 를 초과 할 수 없습니다.한 부모 노드 의 두 개의 키 노드 를 각각 왼쪽 노드 와 오른쪽 노드 라 고 부 르 고 서브 노드 의 개 수 를 2 로 제한 함으로써 효율 적 인 프로그램 이 트 리 에 데 이 터 를 삽입 하고 찾 으 며 삭제 할 수 있다.이 진 트 리 (BST) 는 특수 한 이 진 트 리 로 상대 적 으로 작은 값 은 왼쪽 노드 에 저장 되 고 큰 값 은 오른쪽 노드 에 저 장 됩 니 다.이 특성 으로 인해 검색 의 효율 이 높 습 니 다. 수치 형 과 비 수치 형 데이터, 예 를 들 어 단어 와 문자열 등 이 모두 이와 같 습 니 다.
 
알고리즘
 
1. 거품 정렬 1) 인접 한 두 가지 요 소 를 비교 하고 앞의 것 이 뒤의 것 보다 크 면 위 치 를 교환 합 니 다.2) 첫 번 째 라 운 드 를 비교 할 때 마지막 요 소 는 가장 큰 요소 이다.3) 이때 마지막 요소 가 가장 크기 때문에 마지막 요 소 는 크기 비교 에 참여 할 필요 가 없다.
function bSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len-1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            //         ,    ,         
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    return arr;
}

//    
myArr = [20,18,27,19,35];
//    
bSort(myArr)

 2. 통계 문자열 에 가장 많이 나타 나 는 문자

<span style="color: #0000ff;">var</span> str = <span style="color: #800000;">'</span><span style="color: #800000;">abcdefffdddddd</span><span style="color: #800000;">'</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">var</span> obj=<span style="color: #000000;">{};
</span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">var</span> i=<span style="color: #800080;">0</span>;i<str.length;i++<span style="color: #000000;">){
    </span><span style="color: #0000ff;">var</span> t =<span style="color: #000000;"> str[i];
    </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(obj[t]){
        obj[t]</span>++<span style="color: #000000;">;
    }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{
        obj[t] </span>= <span style="color: #800080;">1</span><span style="color: #000000;">;
    }
}
console.log(obj);

</span><span style="color: #0000ff;">var</span> max=<span style="color: #800080;">0</span><span style="color: #000000;">,tKey;
</span><span style="color: #0000ff;">for</span>(key <span style="color: #0000ff;">in</span><span style="color: #000000;"> obj){
    </span><span style="color: #0000ff;">if</span>(obj[key] ><span style="color: #000000;"> max){
        max </span>=<span style="color: #000000;"> obj[key];
        tKey </span>=<span style="color: #000000;"> key;
    }
}
console.log(tKey)
</span>

좋은 웹페이지 즐겨찾기