Tiny Middle Finger

C언어 기초 14

C를 왜 배워요?

요즘 비전공자도 코딩을 많이 하는데요비전공자는 대부분 C보다는 JAVA와 Python을 많이 하죠컴퓨터공학과 학생이라면 무조건 C부터 배우는 곳이 많은데트렌드를 너무 반영못한다, 시대에 뒤떨어진다는 생각을 할 수도 있을 것 같아요하지만 전공자라면 C를 배우지 않을 수는 없죠그럼 배우기 쉽고 라이브러리도 많은 JAVA와 Python대신왜 C를 배울까요?  모든 언어의 기반은 C언어와 연결이 되어 있어요객체지향이라는 개념은 C++이나 C#부터 볼 수 있는데요객체지향이라고 해도 그 내부의 알고리즘과 컴파일은 C언어와 가깝답니다그리고 C언어를 코블처럼 더이상 쓰는 곳이 적다면 배우지 않겠지만아직까지도 많이 사용하고 있는 언어라 안배울 수 없어요 알고리즘 공부를 많이하는데 알고리즘 공부에도 C언어가 빠질 수 없답..

선택 정렬

비교식>교환 방식>선택 정렬 선택 정렬 선택 정렬 Selection Sort : 기준 위치에 맞는 원소를 선택해 자리를 교환하는 방식 밑에는 가장 작은 원소부터 기준 위치로 설정하고 가장 작은 값과 계속 교환하여 자리를 찾는 방식이다. 이후 정렬된 자리를 제외하고 다시 자리를 교환하여 자리를 찾는다. 시간 복잡도: O(n2) 전체 비교 횟수: (n-1) + (n-2) + ``` + 2 + 1 = n(n-1) / 2 선택 정렬 알고리즘 selectionSort(a[], n) for(i

정렬이란?

정렬의 개념 정렬 Sort 란! 순서대로 배열하는 것이다. 기준값 Key : 정렬하는 데 사용하는 기준이 되는 특정 값 정렬 방식의 분류 정렬할 자료를 메인 메모리에 올려서 정렬하는 방식 속도는 빠르지만 정렬할 수 있는 자료의 양이 메인 메모리 용량에 따라 제한된다. 구분 종류 설명 예시 비교식 교환방식 키를 비교하고 교환하여 정렬 선택 정렬, 버블 정렬, 퀵 정렬 삽입방식 키를 비교하고 삽입하여 정렬 삽입 정렬, 셸 정렬 병합 방식 키를 비교하여 병합하여 정렬 2-way 병합, n-way 병합 선택 방식 이진 트리를 사용하여 정렬 히프 정렬, 트리 정렬 분배식 분배 방식 키를 구성하는 값을 여러 개의 부분집합에 분배하여 정렬 기수 정렬 파일을 부분 파일로 분리하여 각각을 내부 정렬 방법으로 정렬하여 병..

C언어 기초/자료구조/C로 배우는 쉬운 자료구조/Chapter10. 검색_요약

01 검색 자료 검색은 원하는 탐색키를 가진 항목을 찾는 것. 검색 성공: 찾음 검색 실패: 찾지 못함 02. 검색 방법의 분류 비교 검색 방식 Comparison Search Method: 검색 대상의 키를 비교(순차, 이진, 트리) 계산 검색 방식 Non-comparison Search Method: 계수적인 성질을 이용한 계산(해싱) 03. 기본 순차 검색 순차 검색 Sequential Sesarch은 일렬로 나열된 자료를 처음부터 마지막까지 순서대로 비교 가장 간단하고 직접적인 방법 배열이나 연결리스트로 구현한 선형 자료구조에서 원하는 항목을 찾는 방법 정렬 필요 없음 04. 색인 순차 검색 색인 순차 검색 Index Sequential Search은 인덱스 테이블을 추가로 사용 → 탐색의 효율 ..

C언어 기초/자료구조/C로 배우는 쉬운 자료구조/Chapter10 검색_2

C언어 기초/자료구조/C로 배우는 쉬운 자료구조/Chapter10 검색_1 검색 검색 search란 말 그대로 무언가를 찾는 것입니다! 저장한 자료 중 원하는 자료를 찾았다면 검색 성공 Hit! 찾지 못했다면 검색 실패 Miss! 검색은 위치에 따라 내부 검색 Internal Search: 메모리 내 myscoreis-c.tistory.com 계산 검색 4. 해싱 1. 해싱이란? 해싱 Hahing 은 산술적인 연산으로 키가 있는 위치를 계산하여 바로 찾아가는 계산의 검색 방식! 해시 함수 Hash Funtion: 키값을 원소 위치로 변환하는 함수 해시 테이블 Hash Table: 해시 함수로 계산된 주소 위치에 항목을 저장한 표 키값 → 해싱함수 → 해시주소(버킷주소) → 해시테이블 (해시테이블) 해시 ..

C언어 기초/자료구조/C로 배우는 쉬운 자료구조/Chapter10 검색_1

검색 검색 search란 말 그대로 무언가를 찾는 것입니다! 저장한 자료 중 원하는 자료를 찾았다면 검색 성공 Hit! 찾지 못했다면 검색 실패 Miss! 검색은 위치에 따라 내부 검색 Internal Search: 메모리 내에서 수행 외부 검색 External Search: 메모리 외부 보조 기억 장치에서 수행 으로 나눌 수 있습니다. 또한 검색 방법에 따라 비교 검색 Comparison Search: 검색 대상의 키를 비교하여 검색한다(순차 검색, 이진 검색, 트리 검색) 계산 검색 Non-Comparison Search: 계수적인 성질을 이용한 계산으로 검색한다(해싱) 으로 나눌 수 있습니다. 비교 검색 1. 순차 검색 가장 쉽고 단순한 방법으로 기본 순차 검색: 항목을 순서대로 비교하면서 검색 색..

C언어 기초/C언어문법/C언어 변수선언

변수 선언!할 때 가장 중요한 것이 바로 변수의 이름짓기 입니다! 이 이름은 스크립트 작성 시(코드 작성 시) 내가 아닌 다른 사람도 알아보기 쉽게 하기 위해 꼭 그 용도를 알 수 있게 짓는 것이 중요합니다. 하지만 또 너무 길어지면 보기 싫어지겠죠? 이름을 잘 짓는 법을 알기에 앞서 우선 변수이름의 조건을 좀 알아봅시다! 변수 이름 규칙 1) 영문자, 숫자, 밑줄을 사용한다. -띄어쓰기 안됨! 2) 첫 글자는 숫자를 사용할 수 없다. -뒤에 붙는 것은 상관 없어요! 3) 알파벳 대문자와 소문자를 구분한다. -A와 a는 엄연히 다른 변수입니다! 오탈자가 대소문자 구분에서 많이 나오니 주의해주세요! 4) 키워드나 예약어는 사용할 수 없다. - 키워드나 예약어.. 생소한 단어죠? 쉽게 말하자면 C프로그램에서..

<C로 배우는 쉬운 자료구조> 01. 배열-1

1. 배열이란? 배열 Array은 자료형이 같은 자료를 나열한 것! - 메모리에 연속적으로 저장 - 인덱스 index를 사용하여 요소 구분(항상 0부터 시작) - '배열이름[배열 요소의 인덱스]'로 지정. 변수처럼 사용. 2. 1차원 배열 1차원 배열 선언 자료형 배열이름 [배열요소의 개수]; 1) 배열의 자료형을 선언한다. 배열 요소는 모두 자료형이 같아야 하고, 배열 요소의 자료형이 배열의 자료형이 된다. 2) 변수 이름과 같은 규칙으로 정한다. 3) 대괄호([ ])를 사용해 배열 요소의 개수를 표시하는데, 배열 요소 개수가 배열 크기이다. 배열을 선언하면 메모리에 배열에 대한 공간이 할당되고 그 크기는 '자료형에 대한 메모리 할당 크기X배열 요소의 개수'이다. 예제 #include void main..

C언어 기초/C언어 공부법!! 컴퓨터 언어 공부법(코딩공부법)

오랜만에 돌아온 C밖에 할 줄 모르는 컴공의 C언어 기초시간입니다. 가장 어려운 건 역시 어떻게 C 코딩 공부를 하냐!! 인데요. 맨 처음엔 기초 컴퓨터 언어 문법책을 사세요. 어떤 책이든 마음에 드는 책을 사시면 됩니다. 저는 로 공부했습니다. 책을 사신 후 책 과정을 따라 비쥬얼 스튜디오 또는 비쥬얼 코드 같은 프로그램을 깔고 책에 적혀있던 코드 프로그램들을 한 번씩 모두 해봅니다. 그 후에 다시 코드 프로그램을 따라 써보며 각 줄이 무슨 역할을 하는지, 함수에 어떤 작용을 하고 있는지 주석으로 써봅니다. 예시를 들어볼게요! #include //Standard Input Output.header 를 포함시키는 전처리기 int main() { printf("Hello World!"); //printf문..

C언어 기초/연산

1. 대입 연산 변수는 값을 저장하기 위하여 선언! 변수에 값을 저장하는 방법은? x = 100; 여기서 x는 100과 같다 가 아닌 할당한다고 생각! x라는 칸에 100을 대입하는 것이다. (좌변) = (우변) 좌변: 값을 저장할 수 있는 변수 우변: 저장될 값 2. 산술 연산 컴퓨터는 계산을 하는 기계! 산술 연산자 연산 연산자 C 수식 덧셈 + x + y 뺄셈 - x - y 곱셈 * x * y 나눗셈 / x / y 나머지 % x % y 사칙 연사자들은 이항 연산자라고 불리는데 두 개의 피연산자를 가지기 때문이다. 피연산자: 연산을 당하는 친구들! 연산하는 값들을 얘기한다. 곱셈의 경우 수학과 다르게 반드시 *기호를 사용해야한다. 생략도 안됨! 컴파일러는 xy를 곱셈이 아닌 변수 이름 xy 로 생각한..

728x90
반응형