1. 선택 정렬
리스트중 가장 작은 숫자를 선택하여 왼쪽부터 정렬시켜 나가는 작업을 반복하는 정렬이다.
https://namu.wiki/w/%EC%A0%95%EB%A0%AC%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98?from=%ED%9E%99%20%EC%A0%95%EB%A0%AC
1. 선택 정렬
리스트중 가장 작은 숫자를 선택하여 왼쪽부터 정렬시켜 나가는 작업을 반복하는 정렬이다.
https://namu.wiki/w/%EC%A0%95%EB%A0%AC%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98?from=%ED%9E%99%20%EC%A0%95%EB%A0%AC
사람이 프로그램을 보다 편하게 쓰고 읽을 수 있도록 규칙을 만들자는 흐름을 타고
‘구조화 프로그래밍'이 태어났다.
만약 oo 이면 xx를 해 라고 표현하고 싶지만 만약 oo 가 아니면 어디로 점프해 , 그리고 xx 를해 라고 뒤집어서
표현해야하기 때문에 혼란수러울수 있다.
if 문을 배웠을때는 분명 else나 else if 등과 함께 배웠을 것이다.
else나 else if 가 없으면 프로그램을 짤수 없을까??
C 언어의 표현 방법부터보자
void not_use_if(int x){
if(x <= 0) goto NOT_POSITIVE;
printf("플러스 숫자 \\n");
goto END;
NOT_POSITIVE:
if(x >=0) goto NOT_NEGATIVE;
printf("마이너스 숫자\\n");
goto END;
NOT_NEGATIVE:
printf("제로 \\n");
END:
}
C 언어로 프로그래밍을 할때 else 를 사용할 필요가 없다. 대신 goto가 사용되고 있지만,
goto 기능은 ‘지정한 행으로 점프' 라는 기능이있다.
그럼 앞에있는 코드가 알기쉬웠나? 조금 복잡하다. 그렇다면 if else를 사용하면
void use_if(int x){
if(x <= 0){
printf("플러스 숫자 \\n");
}else if(x < 0){
printf("마이너스 숫자 \\n");
}else{
printf(" 제로\\n");
}
조건이 참일경우와 거짓인 경우의 여러가지 케이스를 분배한다 패턴은 프로그래밍에 빈번히 사용된다.
[리액트를 다루는 기술] 4. 컴포넌트 (0) | 2022.06.27 |
---|---|
[리액트를 다루는 기술] 3. 코드이해하기 (0) | 2022.06.26 |
[리액트를 다루는 기술] 2. 작업 환경 설정 (0) | 2022.06.26 |
[리액트를 다루는 기술] 1. 왜 리액트인가? (0) | 2022.06.26 |
[코딩을 지탱하는 기술] 한 문자가 16비트인 JAVA 문자열 [수정중] (0) | 2022.03.27 |
우선 java의 String 에대해서 알아보자
JAVA로 개발하다보면 제일많이 쓰이는 클래스가 String 클래스이다.
String 클래스는 문자열을 다루는 클래스미여 불변하다는 특징이있다.
String 객체에 값이 초기에 할당되면 그 값은 변경되지 않는다.
String 객체 생성방법
@DisplayName("String 객체 생성방법")
@Test
void test1(){
String a1 = "a";
String a2 = new String("a");
System.out.println("a1 = a2 : " + (a1 == a2));
}
리터럴로 생성될경우 String 객체는 String constant pool 이란 공간에 저장이된다.
new 연산자로 생성될 경우 Heap 영역에 저장된다.
각변수 a1, a2 는 Stack 메모리에 올라가며 String constant pool 과 Heap 영역에 생성된 객체 메모리 주소값을 참조하게된다.
즉 변수 a1와 a2는 서로 참조하는곳이 다르기때문에 false가 나오게 된다.
[리액트를 다루는 기술] 4. 컴포넌트 (0) | 2022.06.27 |
---|---|
[리액트를 다루는 기술] 3. 코드이해하기 (0) | 2022.06.26 |
[리액트를 다루는 기술] 2. 작업 환경 설정 (0) | 2022.06.26 |
[리액트를 다루는 기술] 1. 왜 리액트인가? (0) | 2022.06.26 |
[코딩을 지탱하는 기술] 처리 흐름 제어 (0) | 2022.04.02 |
오늘의 일지부분
1. 테이블에서 as로 별칭을 통해서 가져오지않아서 데이터를 읽어올수없었던점이다.
2. ==와 equal의 차이
3. jpql을사용해서 데이터비교하는것과 다시가져오는거 해보기
4. jpql과 sql문을 사용했지만 어노테이션부분이 새로웠다. (다시확인해보기)
5. 내가 수정했던게 과연잘한방법일까....
[개발노트] 리액트 라우팅 (0) | 2022.06.16 |
---|
코드워즈를 사용해보려고한다.
그이유라면 이블로그에올린게 멋있었기때문이다. ㅋㅋ
꾸준히 할진 모르겠지만
풀고 이블로그에 계속올려보려고한다.
문제를 보고 틈틈히 그문제를 생각해보고 저녁에는 커밋하는방식?
알고리즘을 공부하는이유라면 조금더 코딩에 친숙해지고 복붙보다 직접 코딩을해보고 싶은 마음에 배우기로했다.
[알고리즘] Hash (해쉬)이란 (0) | 2024.02.12 |
---|---|
[알고리즘] Greedy Algorithm (탐욕알고리즘) 이란 (1) | 2024.02.12 |
[알고리즘] DFS (깊이 우선탐색)이란 (1) | 2024.02.11 |