[20210720] 선형검색(보초법) / ajax/JavaScript/Java api 문서/synchronized

해니·2021년 7월 20일
0

doota

목록 보기
1/2

1.선형 검색 (보초법)

public class SentinelMethod {
	
    int seqSearch(int[]a, int a, int key){
    
    int i = 0 ;
    
    while(true){
    	
        a[n] = key;	// 배열 a 끝(a[n])에 보초값(key, 검색값)을 추가함
        
        if(a[i]==key){	// 배열 a에서 검색값을 찾은 경우 반복문 종료 
        	break;
        }
        i++
    }
    
    // 삼항연산자 (조건식) ? true 일 때 : false 일 때
    return i==n ? -1 : i ; 
   	    
    }
    
    
    public void run(){
    	
        // Scanner 객체
		// System.in : 입력되는 키를 바이트로 리턴하는 저수준 스트림 
		// int를 입력받을 때는 netxInt()를 이용함 
        
        Scanner scan = new Scanner(System.in);
        
        // num: 요솟수 (배열 값의 갯수)
        System.out.println("요솟수:");
        int num = scan.nextInt();
        
        // 배열 x
        // 보초값이 들어갈 빈 공간이 필요하므로 인덱스 값은 [num+1]
        int[] x = new int[num+1];
        
        // 보초값을 제외한, 배열값 입력
        for(int i=0;i<num;i++){
        	System.out.println("x["+i+"]:");
            x[i] = scan.nextInt();
        }
        
        // keyVal: 검색할 값
        int keyVal = scan.nextInt();
        
        // int seqSearch(int[]a, int a, int key)
        // 요솟수가 num인 배열 x에서 keyVal 값을 찾은 후 index 값을 반환함
        // 반환된 index 값이 -1인 경우 검색 실패를 의미함 
        int index = seqSearch(x, num, keyVal);
    
    }
    
    
    public static void main(String[] args){
    	SentinelMethod sm = new SentinelMethod();
        sm.run();
    }
    
    
    
    
}

*참고 자료
[자료구조] 선형 검색 (Linear Search)에 대해 알아보자 (순차검색, 보초법 등)

2.ajax 구조


<button onclick="test_param()">test param btn</button>

<script type="text/javascript" >

// var : 중복 선언 가능, 재할당 가능, 함수 내부에 선언된 변수만 지역변수로 한정하며 나머지는 모두 전역변수로 간주 (함수 레벨 스코프)
// let : 중복 선언 불가능, 재할당 가능, 함수 내부와 코드 블럭({})에서 선언된 변수도 지역변수로 간주함 (블록 레벨 스코프)
// const : 중복 선언 불가능, 재할당 불가능, 상수를 선언하는 키워드, 처음 선언할 때 반드시 초기화(값 할당)을 해주어야 함, 블록 레벨 스코프    
let param = {};
param.name = 'haeniYu'
paraim.id = 'haeni311'

$.ajax({
	type: 'POST'
    ,url: '/test/param'
    ,data: param
    // beforeSend
    // jqXHR(jQuery 1.4.x에서는 XMLHTTPRequest) 객체가 전송되기 전에 수정하는 데 사용할 수 있는 사전 요청 콜백 함수
    // 사용자 정의 헤더 등을 설정
    ,beforeSend: function(xhr) {
	   	xhr.setRequestHeader(header, token);
	}
     ,success: function (data) {
        	console.log(data)
        }
    ,error : function(jqXHR, textStatus, errorThrown){
        	console.log('err \n'+jqXHR+"\n"+textStatus+"\n"+errorThrown)
        	console.log(textStatus)
        }
    // complete
   // 요청이 완료되면 호출될 함수 ( success및 error콜백이 실행된 후 )
    ,complete : function(){
  }
});

</script>

자바스크립트- 변수 선언 방식 차이 (var, let, const)

3.Javascipt 문법

1.toArray()

  • 특정값을 배열로 저장
  • $(선택요소).toArray();
// 예:
// document의 모든 div를 선택하고 dom 요소를 배열로 변환 후,
// reverse() 메서드를 사용하여 해당 배열을 뒤집는다

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
	
<style>
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>

</head>
<body>

Reversed - <span></span>
 
<div>One</div>
<div>Two</div>
<div>Three</div>

<script type="text/javascript">

function disp(divs){
	var a = [];
	for(var i=0;i<divs.length;i++){
		a.push(divs[i].innerHTML);	
	}
	$("span").text(a.join(""));
}

disp($("div").toArray().reverse());

</script>

</body>
</html>

2.sort()

  • arr.sort([compareFunction])
  • 정렬 순서를 정의하는 함수
  • 원본 배열인 arr가 정렬이 되고, 리턴하는 값 또한 원본 배열인 arr을 가리키고 있음
<script>
const arr1 = [2,1,3];
const arr2 = ['banana', 'apple', 'orange']

arr1.sort();
document.writeln(arr1+'<br>');	// [1,2,3]

arr2.sort();
document.writeln(arr2+<br>');	// ['apple','banana','orange']

</script>

3. synchronized (동기화)

  • 비동기: 쓰레드가 다른 쓰레드에 신경 쓰지 않고 작업함
  • 동기: 쓰레드가 다른 작업을 하는 쓰레드와 조화롭게 동작함
  • synchronized(잠글 객체) {
    // 하나의 쓰레드만 처리되는 영역
    }
public static void func() {
  synchronized( this.class ) {
  // [code]
  }
}

출처: https://jamssoft.tistory.com/199 [What should I do?]

0개의 댓글