본문 바로가기

반응형

개발/algorithm

(12)
[C/C++][algorithm] 버블정렬 버블 정렬 : 인접한 원소를 비교하여 큰 수를 뒤로 보냄 1 6 4 3 1 6 4 3 1 4 6 3 1 4 3 6 6확정 1 4 3 6 1 4 3 6 1 3 4 6 4확정 1 3 4 6 1 3 4 6 13확정 구현 #include int main() { int n, data[100]; scanf("%d", &n); for(int i =0; i
[C/C++][algorithm] 삽입정렬 삽입정렬 : 아직 정렬하지 않은 부분의 첫 번째 요소를, 정렬된 열의 알맞은 위치에 삽입 정렬되지 않은 부분의 첫 번째 요소를 바로 옆 요소와 비교해 가면서 이동 6 4 1 7 3 9 4 6 1 7 3 9 4 1 6 7 3 9 1 4 6 7 3 9 1 4 6 7 3 9 1 4 6 7 3 9 1 4 6 3 7 9 1 4 3 6 7 9 1 3 4 6 7 9 1 3 4 6 7 9 구현 #include int main() { int n, data[100]; scanf("%d", &n); for(int i =0; idata[j] ){ int temp; temp = data[j-1]; data[j-1] = data[j]; data[j] = temp; } else break; } } for(int i = 0; i
[C/C++][algorithm] 선택정렬 ※ 정렬 : 특정 기준을 적용하여 나열한다. ※ 선택 정렬 : 최솟값을 계속 앞으로 이동 시킴 (기준 : 오름차순) 아직 정렬하지 않은 부분에서 값이 가장 작은 요소를 선택하고 아직 정렬하지 않은 부분의 첫 번째 요소와 교환 6 4 8 3 1 9 7 : 1을 6과 교환 1 4 8 3 6 9 7 : 3을 4와 교환 ..반복 결과 : 1 3 4 6 7 8 9 ※ 구현 #include int main() { int n; int data[10] ; scanf("%d", &n); //입력 for(int i=0; i
[java][algorithm]검색 - 선형검색, 이진검색(binarySearch) 선형검색 앞부터 순서대로 검색 하는 방법 package javaStudy; import java.util.Scanner; public class ch3_2 { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("배열 수 : "); int num = stdIn.nextInt(); int[] x = new int[num]; for (int i = 0; i < x.length; i++) { System.out.print("x[i] : "); x[i] = stdIn.nextInt(); } System.out.print("검색할 값 : "); int key = stdIn.nextInt();..
[java][algorithm]소수 구하기 소수 : 1과 자기자신으로만 나누어 떨어지는 정수 어떤 정수 n에 대하여 이중 for 문을 돌리면서 2부터 n-1까지 다른 정수로 나누어 떨어지지 않는지 확인 코드 설명) for 문에서 9를 만날때 9는 i가 3일 때 나누어 떨어지므로 break package chap02; // 1,000 이하의 소수를 열거(버전 1) class PrimeNumber1 { public static void main(String[] args) { int counter = 0; // 나눗셈의 횟수 for (int n = 2; n
[java][algorithm] 기수 변환 (10진수 정수 n진수 정수로 변환) 10진수 정수를 n진수 정수로 변환하려면 정수를 n 으로 나눈 나머지를 구하고, 그 몫에 대해 나눗셈을 반복해야 한다. 코드 설명) charAt메서드는 문자열에서 임의의 문자를 액세스 하기 위한 String 클래스의 메서드 1. x%n을 인덱스로 하는 문자를꺼내 배열에 순서대로 저장 2. 나눗셈을 반복 3. 저장한 배열을 다시 역순으로 정렬 package chap02; import java.util.Scanner; // 입력 받은 10진수를 2진수 ~36진수로 기수변환하여 나타냄(윗자리부터 배열에 저장) class CardConv_02_06 { // 정수 x를 r진수로 변환하여 배열 d에 윗자리부터 저장하고 자릿수를 반환 static int cardConv(int x, int r, char[] d) { ..
[java][algorithm] 배열 역순으로 정렬하기, 배열 뒤집기 1,2,3,4,5,6,7 -> 7,6,5,4,3,2,1로 배열하기 1, 7 교환 2, 6 교환 3, 5 교환 4 교환 (x) 총 3번 루프 필요 ( 전체/2 ) 홀수일 경우 나머지 1개는 교환할 필요가 없기 떄문에 나머지는 버려준다. * 주의 : a.length는 6 , 배열 최대는 a[5] package ssss; public class ant { public static void main(String[] args) { int[] a = {1,2,3,4,5,6}; //a.length는 6 , 배열 최대는 a[5] for (int i = 0; i < (a.length)/2 ; i++) { int max = a.length- i -1; //6-0-1 , 6-1-1, 6-2-1 int temp = 0; te..
[java][algorithm] 배열의 최댓값 구하기 배열 요소의 최댓값 구하기 a[0], a[1], a[2] max = a[0] if(a[1] > max) max = a[1]; if(a[2] > max) max = a[2]' max = a[0] for(i=1; i max) max = a[i] for문이 1부터인 이유는 a[0]은 이미 max에 저장되어 있기 때문이고, 요소 개수가 n개이면 if문은 n-1개 작성해야 한다. 배열은 0부터 시작하기 때문에 최대 a[n-1]개 for문을 돌리면서 a[1] 부터 마지막 요소 a[n-1]까지 차례로 살펴본다. == 스캔한다 랜덤으로 입력받은 키의 최댓값 구하기 package chap02; import java.util.Random; // 배열의 요소의 최댓값을 출력 (요솟수와 값을..

반응형