분류 전체보기

    선택정렬, 삽입정렬구현

    선택정렬, 삽입정렬구현

    Selection Sort [선택 정렬] 선택 정렬은 말 그대로 현재 위치에 들어갈 데이터를 찾아 선택하는 알고리즘이다. 데이터를 '비교'하면서 찾기 때문에 '비교 정렬'이며 정렬의 대상이 되는 데이터 외에 추가적인 공간을 필요로 하지 않기 때문에 '제자리 정렬(in-place sort)'이기도 하다. 정확히는 데이터를 서로 교환하는 과정(swap)에서 임시 변수를 필요로 하나, 이는 충분히 무시할 만큼 적은 양이기 때문에 제자리 정렬로 보는 것이다. 그리고 '불안정 정렬'이다. 이에 대한 것은 마지막에 한 번 정리하도록 하자. 정렬 방법 선택 정렬의 전체적인 과정은 이렇다. 1. 주어진 리스트에서 최솟값을 찾는다. 2. 최솟값을 맨 앞 자리의 값과 교환한다. 3. 맨 앞 자리를 제외한 나머지 값들 중 ..

    Chapter 05 배열 (Array) - 220103~

    1. 배열 1.1 배열(array)이란? "배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것" 많은 양의 데이터를 저장하기 위해서, 그 데이터의 숫자만큼 변수를 선언해야 한다면 매우 혼란스러울 것이다. 이런 경우에 배열을 사용하면 많은 양의 데이터를 손쉽게 다룰 수 있다. 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. 반드시 '같은 타입'이어야 한다. 한 학급의 시험점수를 저장하고자 할 때가 배열을 사용하기 좋은 예이다. 만일 배열을 사용하지 않는다면 학생 5명의 점수를 저장하기 위해서 아래와 같이 5개의 변수를 선언해야 할 것이다. int score1, score2, score3, score4, score5 ; 변수 대신 배열을 이용하면 다음과 같이 간단히 처리할 수 있다. 변수의 ..

    Java 수업복습(220110~) - 조건문과 반복문(if, switch, for, while statement)

    챕터에 들어가기 이전에 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다. 1. 조건문 - if, switch 조건문은 조건식과 문장을 포함하는 블럭{}으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다. 1.1 if 문 if문은 '만일 ~이라면...'이므로 '만일(if) 조건식이 참(true)이면 괄호{} 안의 문장들을 수행하라.'는 의미로 이해하면 된다. if (조건식) { // 조건식이 참일 때 수행될 문장들을 적는다. } 자바에서 조건식의 결과는 반드시 true 또는 false이어야 한다는 것을 잊지 말자. 1.2 if-else문 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 ..

    java 수업복습(220106) - 연산자(Operator)

    4.비교 연산자 먼저 이 파트를 공부하기 전에 자바의 기본 데이터 타입 중 boolean 을 알아야 한다. 1. boolean은 참이나 거짓을 나타내는 값으로 1바이트 크기를 가지고 있습니다. 2. 주로 프로그램의 흐름을 제어하는 변수로 사용되는 데이터 타입입니다. 3. boolean은 그 결과로 true 또는 false이라는 논리값을 반환합니다. 이정도 개념을 정리하고 비교 연산자로 들어가자면 비교 연산자는 두 피연산자를 비교하는 데 사용되는 연산자다. 주로 조건문과 반복문의 조건식에 사용되며, 연산결과는 오직 true와 false 둘 중의 하나이다. 비교 연산자 역시 이항 연산자이므로 비교하는 피연산자의 타입이 서로 다를 경우에는 자료형의 범위가 큰 쪽으로 자동 형변환하여 피연산자의 타입을 일치시킨 ..

    Java 형변환(Casting)이란

    형변환 이란? 변수나 리터럴 타입을 다른 타입으로 변환하는 것을 '형변환'이라고 한다. 주로 타입이 다른 값들을 계산하는 경우 사용된다. 타입이 다른 값들은 같은 타입으로 변환한 다음에 계산하여야 한다. 형변환 방법 (타입)피연산자 와 같은 형식으로 바꾸어준다. double height = 188.2; int hello = (int)height; // hello = 188 // height = 188.2 *기본형에서 boolean을 제외한 나머지 모든 타입들은 서로 형변환이 가능하다. 정수형 간의 형변환 int(4byte)를 byte(1byte)로 변환하는 경우 값의 손실이 발생한다. 반대로 작은 타입에서 큰 타입으로 변환하는 경우 남은 공간은 0으로 채운다. 단, 변환하려는 값이 음수인 경우 빈 공간을..

    java 수업 복습 (220105) - 연산자(Operator)

    연산자는 크게 6가지 토픽으로 나눌 수 있는데요. [ 1.연산자 > 2.단항 연산자 > 3. 산술 연산자 > 4. 비교연산자 > 5.논리 연산자 > 6.그 외의 연산자] 제일 먼저 1.연산자 안에 세부 내용들을 살펴보겠습니다. 1.1 연산자와 피연산자 연산자는 말그대로 '연산을 수행하는 기호'를 말하는데요. 예를 들어 '+'기호는 덧셈 연산을 수행하는 '덧셈 연산자'가 되는 것입니다. 이때, 연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야 하는데요. 이것을 '피연산자'라고 합니다. 피연산자로는 상수,변수 또는 식 등을 사용할 수 있습니다. x + 3 이와 같이 식이 있을 때, '+'는 덧셈 연산자이고, 변수 x와 상수 3은 이 연산자의 피연산자가 되는 것이다. 위의 식을 봐서 알겠지만 대부분의 연..