본문 바로가기

프로그래밍90

[C언어] 삽입정렬 간단예제. [C언어] 삽입정렬 간단예제. 삽입 정렬. selection 이라고도 하지만 일반적으로 그냥 삽입 정렬 이라고 한다. (5,6,4,3,1,6,2) 이렇게 존재 한다고 가정했을 때. 가장 작은 숫자를 찾는다. (1) 이를 첫번째 자리의 숫자과 교체한다. 일반적으로 교체하는 알고리즘(?)이 굉장히 많이 쓰이는데 잠깐 알아보도록 하자. 1. 임의의 변수를 하나 만들고 그 안에 교체될 대상의 값을 저장한다. [temp = 5] 2. 교체될 대상에 선택한 값을 덮어 씌운다. [5에 1을 덮어 쓴다.] 3. 그러면 5라는 값은 사라지고 1 이 2개가 되었을 것이다. (1,6,4,3,1,6,2) 4. 여기서 선택했던 1에 temp의 값을 덮어 씌운다.(대입) [1 = temp] 5. temp는 5가 들어 있었으므로 .. 2011. 5. 12.
[자바] 버블소트 / 버블정렬 / 거품정렬 간단예제. [java] 버블소트 / 버블정렬 / 거품정렬 간단예제. 버블소트. 버블정렬. 거품정렬. 흔히들 이렇게 이야기 한다. 현재 기준 되는 배열과 바로 다음 배열의 값을 비교해서 정렬한다. 그리고 다음 배열과 그 다음 배열의 값을 비교해서 정렬. 0번째와 1번째를 비교하고, 1번째와 2번째를 비교하고, 2번째와 3번째를 비교하는 방식 비교를 해서 오른쪽에 큰 수를 놓는다. 이렇게 큰 수가 오른쪽 끝에 떠오른다 해서 거품 정렬이라 함. 계속 비교를 해서 큰 수를 오른 쪽에 놓으며. 오른쪽 제일 끝에 가장 큰 수가 자리하게 되면 그 다음엔 처음부터 다시 하되, 마지막에 놓인 가장 큰 수를 비교하지 않는다. 당연히 더 작을테니. 따라서 큰 수가 오른쪽부터 차례로 놓이게 되고, 비교하는 횟수도 점차 줄어들게 된다. .. 2011. 5. 12.
[자바] 단순 정렬 / 오름차순 / 내림차순 간단 예제. [java] 단순 정렬 / 오름차순 / 내림차순 간단 예제. 가장 단순한 정렬로 교환법 이라는 방법이다. 첫번째를 기준으로 잡고. 그 다음으로 한칸씩 넘어가며 비교를 하되 기준이 되는 수 보다 크거나, 혹은 작거나 하면 값을 바꾼다. (오름차순, 내림차순에 따라 다름) 0번째 1번째 비교. 1번이 크면 값을 교체. 아니라면 0번째와 2번째를 비교. 2번이 크면 값을 교체. 아니라면 0번째...마지막을 비교. 이렇게 한번씩 비교가 끝나면 0번째에는 가작 큰 값이 자리하게 된다. 그리고 다시 1번째를 기준으로 위의 비교를 반복한다. 결과적으로 모든 정렬이 같지만, 비교하는 방식에 따라 종류가 나뉜다. 당연히 if 문에서 부등호의 방향에 따라 오름차순 내림차순으로 바뀐다. 만약, 위의 코드에서 랜덤수를 발생하.. 2011. 5. 12.
[C언어] %연산자, Mod 연산자란? 간단 예제. [C언어] %연산자, Mod 연산자란? 간단 예제. 나머지 연산. 이라고 하며 % 또는 mod (모드) 연산자 라고도 한다. %연산자를 배우기 전에 꼭 알아야 하는 나누기의 주의사항을 알아보자. 프로그래밍에서 나누기를 하는 방법은 3가지가 있다. 언어마다 다르긴 하지만. 1. 나누어서 몫과 나머지를 구하는 방법. 2. 나누어서 몫만 구하는 방법. 3 .나누어서 나머지만 구하는 방법. 비쥬얼 베이직에서는 위 3가지 방법이 모두 존재 하는데. 다른 언어에서 몫만 구하는 연산자가 있는지 확실히 모르겠다. 물론, 일부러 정수로 나누어서 소수점을 떼어버릴 수도 있긴 하다. 일반적인 나누기에서도 주의할 점이 있다. 처음 접하거나, 오랜만에 접하는 사람들이 자주 범하는 실수로 대상 값을 정수로 나누는 것이다. 3/2.. 2011. 5. 11.
[C언어] 단순 정렬 / 오름차순 / 내림차순 간단 예제. [C언어] 단순 정렬 / 오름차순 / 내림차순 간단 예제. 가장 단순한 정렬로 교환법 이라는 방법이다. 첫번째를 기준으로 잡고. 그 다음으로 한칸씩 넘어가며 비교를 하되 기준이 되는 수 보다 크거나, 혹은 작거나 하면 값을 바꾼다. (오름차순, 내림차순에 따라 다름) 0번째 1번째 비교. 1번이 크면 값을 교체. 아니라면 0번째와 2번째를 비교. 2번이 크면 값을 교체. 아니라면 0번째...마지막을 비교. 이렇게 한번씩 비교가 끝나면 0번째에는 가작 큰 값이 자리하게 된다. 그리고 다시 1번째를 기준으로 위의 비교를 반복한다. 결과적으로 모든 정렬이 같지만, 비교하는 방식에 따라 종류가 나뉜다. 당연히 if 문에서 부등호의 방향에 따라 오름차순 내림차순으로 바뀐다. 만약, 위의 코드에서 랜덤수를 발생하는.. 2011. 5. 11.
[C언어] 버블소트 / 버블정렬 / 거품정렬 간단예제. [C언어] 버블소트 / 버블정렬 / 거품정렬 간단예제. 버블소트. 버블정렬. 거품정렬. 흔히들 이렇게 이야기 한다. 현재 기준 되는 배열과 바로 다음 배열의 값을 비교해서 정렬한다. 그리고 다음 배열과 그 다음 배열의 값을 비교해서 정렬. 0번째와 1번째를 비교하고, 1번째와 2번째를 비교하고, 2번째와 3번째를 비교하는 방식 비교를 해서 오른쪽에 큰 수를 놓는다. 이렇게 큰 수가 오른쪽 끝에 떠오른다 해서 거품 정렬이라 함. 계속 비교를 해서 큰 수를 오른 쪽에 놓으며. 오른쪽 제일 끝에 가장 큰 수가 자리하게 되면 그 다음엔 처음부터 다시 하되, 마지막에 놓인 가장 큰 수를 비교하지 않는다. 당연히 더 작을테니. 따라서 큰 수가 오른쪽부터 차례로 놓이게 되고, 비교하는 횟수도 점차 줄어들게 된다. 결.. 2011. 5. 11.
define란? define 사용법. [스샷설명. 2011/09/09일 수정] define란? #define 사용법. 간단 예제. 매크로와 전처리기 지시자. #define에서 #의미, # 사용법. #define PI 3.14 라고 가정하면 #define를 전처리기 지시자 라고 하며, PI를 매크로 상수 라고 한다. 위와 같이 선언을 해 두었다면 아래 코드 부분에서는 3.14 대신 PI 라고 하면 된다. 이를 PI라는 변수를 만들어서 3.14를 넣은것과 같다고 착각하면 안된다. 결과는 비슷해 보일 수 있으나, 엄밀히 말하면 다른 것이다. define은 단순한 치환으로써. 내가 아끼는 연필에 "몽당이"라는 이름을 지어주고 그 연필을 "몽당이" 라고 부르는 것과 같은 것이다. 때문에 PI의 값은 변경이 불가능 하며, printf 로 찍어도 주소값이 나온다. 여전히 상수이다. 이렇게 상수.. 2011. 5. 11.
[C언어] 랜덤함수 사용법. rand(), srand() 간단예제. [C언어] 랜덤함수 사용법. rand(), srand() 간단예제. C언어에서는 랜덤수 발생을 위해서 rand()와 srand()를 주로 사용한다. 아직 학생이라 실무나 이런 부분에서 어떤지는 잘 모르겠지만. 사실 rand는 딱히 쓸모는 없을거 같다. 해본 사람은 알겠지만 rand의 경우 랜덤으로 발생하긴 하지만 실행시 매번 같다는 점이 문제다. 5개의 랜덤수를 발생했다. 종료 후 다시 실행하면 이전과 동일한 랜덤수가 발생한다. 랜덤수 발생의 기초가 되는 seed (씨앗)이 동일하기 때문이라고 한다. 이러한 문제점을 보안하는 방법으로 srand()가 있다. 일단 기본부터 하자. rand(), srand()는 stdlib.h 에 정의 되어 있으므로 #include 를 반드시 선언해 주어야 한다. 기본적으로.. 2011. 5. 11.
[Java] string을 int로 int를 string으로 변환. 간단한 예제. [Java] string을 int로 int를 string으로 변환. [Java] string을 float로 float를 string으로 변환. [Java] string을 long로 long를 string으로 변환. [Java] string을 short로 short를 string으로 변환. [Java] string을 double로 double를 string으로 변환. 문자를 숫자로, 숫자를 문자로 바꾸는 방법. 그냥 보기만 해도 아는 사람분이 있겠지만, 간단히 설명하자면 Integer.parsInt(string 변수)는 문자를 숫자형으로 바꾸어 줍니다. Integer.toString(int 변수) 는 숫자를 문자형으로 바꾸어 줍니다. 간단한 예제 보시다 싶이, string을 int형으로 바꾸어서 temp_.. 2011. 5. 9.
[C언어] char을 int형으로 int형을 char형으로. 간단예제. [C언어] char을 int형으로 int형을 char형으로. 간단한 예제. 일단 기본 설명을 하자면 atoi, atof, itoa함수 원형은 int atoi (const char* str) double atof (const char* str) char *itoa ( int value , char *str , int radix ); 대충 이런식이다. 보면 아는 사람도 있겠지만 문자열을 정수로 바꾸는 것은 atoi 문자열을 실수로 바꾸는 것은 atof 정수를 문자열로 바꾸는 것은 itoa 이다. 일단 기본적으로 문자열을 정수로 바꿀 때 당연히 숫자만 정수로 바뀌며 문자가 시작 된 다음부터는 인식하지 않는다. ex)"2005년도 10월" 이라고 하면 2005만 정수로 바뀌어서 저장 됨. 간단한 예제를 보자. .. 2011. 5. 9.