22.01.27 JAVA 정렬, 메소드

최고고·2022년 1월 27일
0
post-custom-banner

-비정방형 배열 생성하기

int[][] array = new int[3][];  //열은 지정해주지않음
	array[0] = new int[1];
	array[1] = new int[2];
    array[2] = new int[3];

	int cnt = 1;
    	for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				array[i][j] = cnt;
				cnt++;
				System.out.print(array[i][j] + " ");
			}
			System.out.println();
		}
  • Bubblesort
    -두 인접한 원소를 비교해 정렬하는 방법
    -속도는 느리지만 코드가 단순하다
    -인접한 두개씩 비교
    ex) 0인덱스1 1인덱스2 2인덱스3 3인덱스4 비교
    더 큰 순으로 오른쪽으로 이동 치환
    -결국 가장 큰 수가 맨 오른쪽으로
    -5행 일때 4회전함

예제:

int[] array = { 45, 7, 12, 82, 25 }; //배열생성
		
	for (int i = array.length -1 ; i > 0 ; i--) { //총 4번의 사이클을 돌기 때문에 행의 크기에서 -1인 4부터 시작하고 1까지 반복. 0~4인덱스, 0~3, 0~2, 0~1비교
		for (int j = 0; j < i; j++) { 0~3까지 
			if (array[j] > array[j+1]) {
				int temp = array[j];
				array[j] = array[j+1];
				array[j+1] = temp;
			}
		}
	}

		
		System.out.println(Arrays.toString(array));

selection sort (최대값이나 최소값 찾아 이동) 예제 :

for(int i = array.length ; i > 0; i--) {
	maxIndex = 0;
	for(int j = 1; j < i; j++) {
		if(array[maxIndex]<array[j]) {
		maxIndex = j;
		}
				
	}
	temp = array[i-1];
	array[i-1] = array[maxIndex];
	array[maxIndex] = temp;
	
} System.out.println(Arrays.toString(array));
  • binary search 이진데이터 탐색
    리스트의 중간값을 정해 크고 작음을 비교해 검색하는 알고리즘 정렬된 리스트에 사용할 수 있다.
    조건 : 안의 데이터가 정렬이 되어있어야됨
    업다운 게임과 비슷하다

-특정원소를 검색하는 알고리즘

  • Sequential search
    순차적 알고리즘 가장 단순한 검색방법, 원소 정렬필요없고 리스트 길이가 길면 비효율적이다. 거의 쓰이지는 않음.

메소드?

-객체의 행위를 표현하기 위한것 기능을 수행하기 위해 클래스 안에서 정의 되는 것 기능을 정의 하는 것
-반복작업을 줄일 수 있고 유지보수가 편리
작성순서
1. public 접근제한자 (접근 지정자) : 내 외부에서 접근이 가능한 제한자
2. static : 저장되어지는 곳
3. 리턴타입 (리턴타입이 없는 경우 void사용) : return이라는 키워드를 사용함
반환(return)해 주는 값(메소드 자료형과 동일한 값)이 있어야함. void는 반환 값 없음. 리턴하려는 데이터가 있다면 그 데이터의 자료형을 메소드의 자료형으로 적어야됨
4.메서드의 이름 : 호출할 이름
5.매개변수 : 메서드안에서 사용하게 될 변수, 없는경우도 있음
int와 string boolean 등은 return이 짝처럼 붙어다님-외부로부터 받아오는 저장공간 변수 = 매개변수,외부인자

post-custom-banner

0개의 댓글