728x90
20220812(금)
- 목차
- 알고리즘
- 버블 정렬
< 알고리즘 >
- 의미
: 데이터에 관한 문제를 해결하는 방법(n가지) - 알고리즘 성능 평가
방법이 많은데 어떤 게 좋은거지? ➡ 성능평가를 해서 좋은 것을 사용하려고 한다.
알고리즘이 주어진 문제를 해결하는데 걸리는 시간과 데이터 입력량의 함수 관계를 해석하는 과정 - BigO : 최악의 경우를 기준으로 정확하게 보는게 아니라 패턴으로만 보겠다. (어떤 것이 더 좋은 알고리즘인지)
< Bubble Sort 정렬 >
- bubble sort
- 앞에서부터 두 수를 비교, 큰 수가 뒤로 가는 형식으로 맨 뒷자리 부터 큰 수가 채워지게 된다.
더보기
// [선생님 풀이]
// asc = ture : 오름차순 , asc = false : 내림차순
// ...ar은 파라미터를 한방에 배열로 만들어준다. 가변파라미터
const bubblesort = function(asc, ...ar)
{
let arr;
let temp = 0;
// 1. type1이 오던 type2이 오던 type1로 맞추자.
console.log(typeof(ar[0]));
// 배열의 0번째가 넘버라면 ar값을 arr에 넣어라
// 근데 이건 배열안의 배열이기에 [44,33,22,55,11]이게 0번째값이 됨
if (typeof(ar[0]) === 'number')
{
arr = ar; // arr에 [44,33,22,55,11] 이값을 넣어라
}
else
{
arr = ar[0]; // arr[44,33,22,55,11] 이값의 0번째 값인 44를 넣어라
}
//arr로 버블소트를 진행
for ( let i = 0; i < arr.length -1; i++)
{
for(let k = 0; k < arr.length -1 - i; k++)
{
if( asc === true)
{
if (arr[k] > arr[k + 1])
{
tamp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = tamp;
}
}
else // false인경우 아래 코드 실행
{
if (arr[k] < arr[k + 1])
{
tamp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = tamp;
}
}
}
}
// 이 리턴은 for문의 arr값이 아님 스택에 위치하고있는 arr값을 리턴시키는것임
return arr;
};
console.log(bubblesort(true, [44,33,22,55,11])); // type1 // false를 쓰면 내림차순으로 적용된다.
//bubblesort([44,33,22,55,11]); // type2
let a = [1,2,3,4];
let b = [[1,2,3,4]];
let c = b[0];
b[0][1] = 77;
console.log(c[1]);
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[21일차] 개인 프로젝트 기획안 피드백 / 가이드 코딩 (0) | 2022.08.18 |
---|---|
[19~20일차] DOM / 프로젝트 기획안 (0) | 2022.08.17 |
[17일차] Scope / 호이스팅 / 문서 객체 / Event (0) | 2022.08.12 |
[16일차] new 연산자 / prototype / JSON / Math.@ (0) | 2022.08.10 |
[15일차] 객체지향 이론 / 객체형 / Object literal / JS 데이터타입 (0) | 2022.08.10 |