본문 바로가기
반응형

전체 글56

[c언어] qsort 사용하기 단순 정렬을 통해서, 주어진 배열을 오름차순 또는 내림차순으로 정렬이 가능하다. 그런데 왜? qsort라는 것을 사용할까? 라이브러리를 제공해서?, 단순 정렬대비 타이핑을 덜 할수 있어서? 앞서 말한 두가지 다 맞는 말이지만, 가장 큰 이유는 시간 복잡도 때문이다. int형의 경우 unsigned int와 signed int로 나뉘는데 각각의 표현 가능 범위는 하기와 같다. 1. unsigned int : 0 ~ 4, 294, 967,295(약 42억) 2. signed int: -2,147,483,648 ~ 2,147,483,647(약 21억) 따라서 N이 100,000(10만개)만 되어도 약 49억인데 int로는 표현이 불가능하다. 단순 정렬의 평균 시간복잡도는 O(N^2)이며, 최악의 시간복잡도도 .. 2023. 1. 4.
[c언어] qsort 사용하기 단순 정렬을 통해서, 주어진 배열을 오름차순 또는 내림차순으로 정렬이 가능하다. 그런데 왜? qsort라는 것을 사용할까? 라이브러리를 제공해서?, 단순 정렬대비 타이핑을 덜 할수 있어서? 앞서 말한 두가지 다 맞는 말이지만, 가장 큰 이유는 시간 복잡도 때문이다. int형의 경우 unsigned int와 signed int로 나뉘는데 각각의 표현 가능 범위는 하기와 같다. 1. unsigned int : 0 ~ 4, 294, 967,295(약 42억) 2. signed int: -2,147,483,648 ~ 2,147,483,647(약 21억) 따라서 N이 100,000(10만개)만 되어도 약 49억인데 int로는 표현이 불가능하다. 단순 정렬의 평균 시간복잡도는 O(N^2)이며, 최악의 시간복잡도도 .. 2023. 1. 4.
힙기반 연결 리스트란? 1. 링크를 무한히 돌면서 원하는 id값과 똑같으면 data를 free시켜준다. 2. n(prev->next)값이 0이 되면 return하여 무한루프를 종료한다. 3. prev = n으로 / n = n->next로 업데이트 시켜준다. 연결 list는 초기값 세팅과 그 변수의 업데이트를 어떻게 할 것인지가 중요한 항목이다. 초기 data는 link 연결이 안되어 있기 때문에 규칙에 맞춰 변수들을 초기화 시켜준다. int Delet_Data(int id) { prev = &hash_table[r]; // 첫 배열의 주소를 이전 노드로 설정한다 n = prev->next; // 첫 배열의 next에 그 다음에 들어올 노드의 주소와 연결한다. } 이렇게 초기 세팅을 규칙에 맞춰 해놓으면 그 다음은 편해진다. i.. 2022. 12. 31.
힙기반 연결 리스트의 delete node 함수 구현 1. 링크를 무한히 돌면서 원하는 id값과 똑같으면 data를 free시켜준다. 2. n(prev->next)값이 0이 되면 return하여 무한루프를 종료한다. 3. prev = n으로 / n = n->next로 업데이트 시켜준다. 연결 list는 초기값 세팅과 그 변수의 업데이트를 어떻게 할 것인지가 중요한 항목이다. 초기 data는 link 연결이 안되어 있기 때문에 규칙에 맞춰 변수들을 초기화 시켜준다. int Delet_Data(int id) { prev = &hash_table[r]; // 첫 배열의 주소를 이전 노드로 설정한다 n = prev->next; // 첫 배열의 next에 그 다음에 들어올 노드의 주소와 연결한다. } 이렇게 초기 세팅을 규칙에 맞춰 해놓으면 그 다음은 편해진다. i.. 2022. 12. 30.
반응형