본문 바로가기
728x90
320x100

자바알고리즘19

이진검색 (chap03/practice01) 이진검색이란? 요소가 오름차순 또는 내림차순으로 정렬된 배열에서 검색하는 알고리즘 package chap03;// 연습3-1 // 선형검색(보초법 : for문을 사용하여 구현) import java.util.Scanner; class practice01 { //--- 배열 a의 앞쪽 n개의 요소에서 key와 일치하는 요소를 선형검색(보초법)---// static int seqSearchSen(int[] a, int n, int key) { int i; a[n] = key;// 보초를 추가 for (i = 0 ; a[i] != key; i++) ; return i == n ? -1 : i; } public static void main(String[] args) { Scanner stdIn = new Sc.. 2022. 10. 28.
선형검색 (chap03/SeqSearch) while문으로 구현 package chap03; import java.util.Scanner; public class SeqSearch { static int seqSearchSen(int[] a, int n, int key) { int i = 0; while(true) { if(i == n) return -1; // 검색 실패 -1을 반환. if (a[i] == key) //검색 성공. return i; // 검색 실패 -1을 반환. i++; } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("요솟수 : "); int num = scan.nextInt(); int[] x .. 2022. 10. 27.
클래스 이용하기 (chap02/Practice07) package chap02; import java.util.Scanner; // 시력분포를 해당되는 사람만큼 *로 표시하기. public class Practice07 { static final int VMAX = 21; //시력분포(0.0~0.1 단위로 21개) static class PhyscData { String name; //이름 int height; //키 double vision; //시력 public PhyscData(String name, int height, double vision) { this.name = name; this.height = height; this.vision = vision; } } //키의 평균값을 구함 static double aveHeight(PhyscData.. 2022. 10. 25.
배열 복사하기 (chap02/CloneArray) package chap02; import java.util.Arrays; //배열을 복제. public class CloneArray { public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5}; int[] b = a.clone(); //b는 a의 복제를 참조. b[3] = 0; System.out.println("a = " + Arrays.toString(a)); System.out.println("b = " + Arrays.toString(b)); } } 2022. 10. 23.
1000 이하의 소수를 나열하기 (chap02/PrimeNumber3) package chap02; //1000 이하의 소수를 나열 (버전3) public class PrimeNumber3 { public static void main(String[] args) { int counter = 0; //곱셈과 나눗셈의 횟수 int ptr = 0; //찾은 소수의 개수 int[] prime = new int[500]; //소수를 저정하는 배열 prime[ptr++] = 2; //2는 소수임. prime[ptr++] = 3; //3는 소수임. for (int n = 5; n 2022. 10. 22.
입력 받은 10진수를 2진수~36진수로 기수 변환하여 출력하기 (chap02/CardConv) package chap02; import java.util.Scanner; // 입력 받은 10진수를 2진수~36진수로 기수 변환하여 출력. public class CardConv2 { // 정숫값 x를 r진수로 변환하여 배열 d에 아랫자리부터 넣어 두고 자릿수를 반환 static int cardConv(int x, int r, char[] d){ int digits = 0; //반환후의 자릿수 String dchar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; do { d[digits++] = dchar.charAt(x % r); //r을 나눈 나머지를 저장 x /= r; } while (x != 0); for (int i = 0; i < digits / 2; i++){ .. 2022. 10. 21.
728x90
320x100