๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with Python]_22_์‚ฝ์ž…์ •๋ ฌ ๋ณธ๋ฌธ

๐Ÿฆฅ ์ฝ”ํ…Œ/์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with python

[์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with Python]_22_์‚ฝ์ž…์ •๋ ฌ

์ง•์ง•์•ŒํŒŒ์นด 2022. 2. 8. 00:46
728x90
๋ฐ˜์‘ํ˜•

220208 ์ž‘์„ฑ

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” ใ€Ž์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹คใ€ ์˜ youtube๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค>

https://www.youtube.com/watch?v=DRkL5EBZ7KY&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=22 

 

 

 

 

 

 

1. ์‚ฝ์ž… ์ •๋ ฌ

: ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ณจ๋ผ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…

: ์„ ํƒ ์ •๋ ฌ์— ๋น„ํ•ด ๊ตฌํ˜„ ๋‚œ์ด๋„๊ฐ€ ๋†’์ง€๋งŒ ํšจ์œจ์ 

 

1) ์ฒซ ๋ฒˆ์งธ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‘ ๋ฒˆ์งธ ์ˆ˜๊ฐ€ ์•ž์œผ๋กœ ๊ฐˆ์ง€, ๋’ค๋กœ ๊ฐˆ์ง€ ํŒ๋‹จ

2) ๊ทธ๋‹ค์Œ ์„ธ ๋ฒˆ์งธ ์ˆ˜๊ฐ€ ์•ž ๋‘ ๊ฐœ์˜ ์ˆ˜์—์„œ ์–ด๋””๋กœ ๊ฐˆ์ง€ ํŒ๋‹จ

3) ๊ทธ๋‹ค์Œ ๋„ค ๋ฒˆ์งธ ์ˆ˜๊ฐ€ ์•ž ์„ธ ๊ฐœ์˜ ์ˆ˜์—์„œ ์–ด๋””๋กœ ๊ฐˆ์ง€ ํŒ๋‹จ

....

์ด๋Ÿฐ ๊ณผ์ • ๋ฐ˜๋ณต

 

  • python
array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]

for i in range(1, len(array)) :
    for j in range(i, 0, -1) :  # ์ธ๋ฑ์Šค 0์œผ๋กœ ๊ฑฐ๊พธ๋กœ ๊ฐ€๊ธฐ!
        if array[j] < array[j-1] : # ์ž‘์œผ๋ฉด ์™ผ์ชฝ!
            array[j], array[j-1] = array[j-1], array[j]
        else :
            break # ์ˆœ์„œ๊ฐ€ ๋งž๋‹ค๋ฉด ๋ฉˆ์ถ”๊ธฐ
print(array)

  • c++
#include <bits/stdc++.h>

using namespace std;

int n = 10;
int arr[10] = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};

int main(void) {
    for (int i = 1; i < n; i++) {
        // ์ธ๋ฑ์Šค i๋ถ€ํ„ฐ 1๊นŒ์ง€ ๊ฐ์†Œํ•˜๋ฉฐ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฌธ๋ฒ•
        for (int j = i; j > 0; j--) {
            // ํ•œ ์นธ์”ฉ ์™ผ์ชฝ์œผ๋กœ ์ด๋™
            if (arr[j] < arr[j - 1]) {
                swap(arr[j], arr[j - 1]);
            }
            // ์ž๊ธฐ๋ณด๋‹ค ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ทธ ์œ„์น˜์—์„œ ๋ฉˆ์ถค
            else break;
        }
    }
    for(int i = 0; i < n; i++) {
        cout << arr[i] << ' ';
    }
}
  • java
import java.util.*;

public class Main {

    public static void main(String[] args) {

        int n = 10;
        int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};

        for (int i = 1; i < n; i++) {
            // ์ธ๋ฑ์Šค i๋ถ€ํ„ฐ 1๊นŒ์ง€ ๊ฐ์†Œํ•˜๋ฉฐ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฌธ๋ฒ•
            for (int j = i; j > 0; j--) {
                // ํ•œ ์นธ์”ฉ ์™ผ์ชฝ์œผ๋กœ ์ด๋™
                if (arr[j] < arr[j - 1]) {
                    // ์Šค์™€ํ”„(Swap)
                    int temp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = temp;
                }
                // ์ž๊ธฐ๋ณด๋‹ค ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ทธ ์œ„์น˜์—์„œ ๋ฉˆ์ถค
                else break;
            }
        }

        for(int i = 0; i < n; i++) {
            System.out.print(arr[i] + " ");
        }
    }

}

 

 

 

 

 

2. ์‚ฝ์ž… ์ •๋ ฌ ์‹œ๊ฐ„ ๋ณต์žก๋„

: ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ฑฐ์˜ ์ •๋ ฌ ๋˜์–ด์žˆ๋‹ค๋ฉด ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋™์ž‘

: ์ตœ์„ ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N)

=> ๋ฐ˜๋ณต๋ฌธ ๋‘ ๋ฒˆ ์ค‘์ฒฉ

=> O(N^2)

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments