정렬 알고리즘: JavaScript - Bubble Sort🚀

목차
* 🤓 INTRODUCTION
* 🥚 WHY SORTING ALGORITHM
* 🎈 WHAT IS BUBBLE SORT
* 🛠 IMPLEMENTATION
* 👩🏻‍💻 CODE
* 🙏 THANK YOU

🤓 소개

Hello, my dear coders! I hope you are all having a wonderful time coding, enjoying your life. In this blog series, we will discuss sorting algorithms and we will implement those algorithms using javascript. Connect with me via or

Algorithms are a very important part of programming and are a part of job interviews.

Let's dive in, and prepare you for the next interview! 🚀



🥚 정렬 알고리즘을 사용하는 이유

There are several algorithms that solve the following sorting problem.

Input: A sequence of n numbers (a1,a2,...,an)
Output: A permutation (reordering) of the input sequence

The input sequence is usually an n-element array, although it may be represented in some other fashion, such as a linked list.

데이터의 구조



실제로 정렬할 숫자는 거의 격리된 값입니다. 각각은 일반적으로 레코드라고 하는 데이터 모음의 일부입니다. 각 레코드에는 정렬할 값인 키가 포함되어 있습니다. 레코드의 나머지 부분은 일반적으로 키와 함께 운반되는 위성 데이터로 구성됩니다.

정렬 알고리즘이 키를 치환할 때 위성 데이터도 치환해야 합니다. 각 레코드에 많은 양의 위성 데이터가 포함되어 있는 경우 레코드 자체가 아닌 레코드에 대한 포인터 배열을 대체하는 경우가 많습니다.

왜 정렬해야 합니까?



많은 컴퓨터 과학자들은 정렬이 알고리즘 연구에서 가장 근본적인 문제라고 생각합니다.

몇 가지 이유가 있습니다.
  • 때때로 애플리케이션은 본질적으로 정보를 정렬해야 합니다. 예를 들어, 고객 명세서를 준비하기 위해 은행은 수표 번호별로 수표를 정렬해야 합니다.
  • 알고리즘은 종종 정렬을 키 서브루틴으로 사용합니다. 예를 들어, 서로 위에 겹쳐진 그래픽 개체를 렌더링하는 프로그램은 이러한 개체를 아래에서 위로 그릴 수 있도록 "위"관계에 따라 개체를 정렬해야 할 수 있습니다. 이 텍스트에서 정렬을 서브루틴으로 사용하는 수많은 알고리즘을 보게 될 것입니다.
  • 다양한 정렬 알고리즘 중에서 선택할 수 있으며 다양한 기술을 사용합니다. 실제로 알고리즘 설계 전반에 걸쳐 사용되는 많은 중요한 기술은 수년에 걸쳐 개발된 정렬 알고리즘 본문에 나타납니다. 이와 같이 정렬도 역사의 문제이다.
    관심.
  • 정렬 알고리즘을 구현할 때 많은 엔지니어링 문제가 대두됩니다. 특정 상황에 대한 가장 빠른 정렬 프로그램은 다음에 따라 달라질 수 있습니다.
    키 및 위성 데이터에 대한 사전 지식, 호스트 컴퓨터의 메모리 계층 구조(캐시 및 가상 메모리) 및 소프트웨어 환경과 같은 많은 요인.

  • 🎈 버블 정렬 알고리즘



    **버블 정렬 알고리즘은 요소를 2개씩 비교하여 더 큰 값의 요소가 이동하고 첫 번째 반복과 마찬가지로 가장 작은 값의 요소가 첫 번째 위치에 "나타납니다".

    🛠 구현



    따라서 배열 [11, 10, 2, 5, 7]로 시작하면 버블 정렬 알고리즘을 적용한 후 배열 [2, 5, 7, 10, 11]을 얻게 됩니다.

    👩🏻‍💻 코드




    function bubble_sort_algorithm(array) {
      const t0 = performance.now(); //this is just for calculating time, ignore it
      const length = array.length; //get the length of an array
      for (let i = 0; i < length; i++) {
        //Loop 1: go from 0 to the length - 1
        for (let j = length - 1; j > i; j--) {
          //Loop 2: go from length - 1, while larger than i, and decrement j
          if (array[j] < array[j - 1]) {
            //check for an element value if current element smaller than the previous element
            let temporary = array[j]; //do the swap
            array[j] = array[j - 1];
            array[j - 1] = temporary;
          }
        }
      }
      const t1 = performance.now();
      console.log(`Time spent executing the function - ${t1 - t0} miliseconds`);
      return array;
    }
    
    let array = [11, 10, 2, 5, 7];
    console.log(bubble_sort_algorithm(array));
    


    👨🏻‍🔬 버블 정렬 알고리즘의 복잡성



    버블 정렬 알고리즘의 복잡성은 최악의 경우와 최상의 경우 모두 항상 Big O of n2입니다.

    🙏 읽어주셔서 감사합니다!

    References:
    School notes...
    School books...

    Please leave a comment, tell me about you, about your work, comment your thoughts, connect with me!

    ☕ SUPPORT ME AND KEEP ME FOCUSED!


    즐거운 해킹 시간 되세요! 😊

    좋은 웹페이지 즐겨찾기