[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‚ฝ์ž… ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)

2022. 11. 12. 14:14ยท๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๐ŸŒฟ์‚ฝ์ž…์ •๋ ฌ์ด๋ž€?

๊ธฐ๋ณธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, KEY๋ฅผ ์„ ํƒํ›„ ๋ฐฐ์—ด์˜ ๊ฐ’๋“ค๊ณผ ๋น„๊ตํ•ด๊ฐ€๋ฉฐ ์‚ฝ์ž…์„ ํ• ์ง€ ์•ˆํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

 

์ตœ์ ์˜ ๊ฒฝ์šฐ -> ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ๋Š” O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

 

์ตœ์•…์˜ ๊ฒฝ์šฐ -> O(n^2)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.


๐ŸŒฟ์ตœ์ ์˜ ๊ฒฝ์šฐ๊ฐ€ O(n)์ธ ์ด์œ 

๋‹ค๋ฅธ ๊ธฐ๋ณธ ์ •๋ ฌ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์‚ฝ์ž… ์ •๋ ฌ์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ O(n)์„ ๊ฐ€์ง€๋Š”๋ฐ

void insertion_sort(int* arr, int size) {
	int i, j, key;
	for (i = 1; i < size; i++) {
		key = arr[i];  
		for (j = i - 1; j >= 0 && arr[j] > key; j--) { //***์—ฌ๊ธฐ ๋ถ€๋ถ„๋•Œ๋ฌธ์— ์ตœ์ ์˜ ๊ฒฝ์šฐ O(n)์„ ๊ฐ€์ง!
			arr[j + 1] = arr[j];
		}
		arr[j + 1] = key;
	}
}

 

 for๋ฌธ ์กฐ๊ฑด์— arr[j] > key๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ๋Š” for๋ฌธ์„ ํƒˆ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


๐ŸŒฟ์ฝ”๋“œ ๋ฐ ์ž‘๋™๋ฐฉ์‹

arr[5]  = {5, 3, 4, 2, 1} ์ธ ๋ฐฐ์—ด์„ ์ •๋ ฌ ์‹œํ‚จ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

 

โญ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค!

#include <stdio.h>

void insertion_sort(int* arr, int size) {
	int i, j, key;
	for (i = 1; i < size; i++) {
		key = arr[i];						  
		for (j = i - 1; j >= 0 && arr[j] > key; j--) {
			arr[j + 1] = arr[j];
		}
		arr[j + 1] = key;
	}
}

int main()
{
	int arr[5] = { 5, 3, 4, 2, 1 };

	printf("์ •๋ ฌ ์ „\n");
	for (int i = 0; i < 5; i++) {
		printf("%d ", arr[i]);
	}

	insertion_sort(arr, 5);

	printf("\n์ •๋ ฌ ํ›„\n");
	for (int i = 0; i < 5; i++) {
		printf("%d ", arr[i]);
	}
}

 

 

โญ๋ฃจํ”„์— ๋”ฐ๋ผ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ทธ๋ฆผ์œผ๋กœ ์•Œ์•„๋ณด์ž

- 1๋ฒˆ์งธ ๋ฃจํ”„(key = 3์ผ๋•Œ)

- 2๋ฒˆ์งธ ๋ฃจํ”„(key = 4)์ผ๋•Œ

- ..... ์ด๊ฑธ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ์™„์„ฑ๋œ๋‹ค.


๐ŸŒฟ์‹คํ–‰

'๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„ํƒ์ƒ‰ ์ •๋ฆฌ  (0) 2023.05.16
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ DFS(2)  (0) 2022.12.01
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ธ์ ‘ ํ–‰๋ ฌ์„ ํ†ตํ•œ ์ธ์ ‘๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„, DFS(1)  (0) 2022.11.26
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฒ„๋ธ” ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)  (0) 2022.11.10
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํƒ ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)  (0) 2022.11.10
'๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ DFS(2)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ธ์ ‘ ํ–‰๋ ฌ์„ ํ†ตํ•œ ์ธ์ ‘๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„, DFS(1)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฒ„๋ธ” ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํƒ ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)
jaeyunim
jaeyunim
  • jaeyunim
    ๋ฐฅ๋ฐฅ๋ฐฅqkq
    jaeyunim
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ“š ja2yun000 NOTE (43)
      • ๐Ÿง‘‍๐Ÿ’ผ ๋„คํŠธ์›Œํฌ ๋…ธํŠธ (0)
      • โ˜๏ธ ํด๋ผ์šฐ๋“œ (0)
      • โœ๏ธ ํšŒ๊ณ ๋ก (1)
      • ๐Ÿ–ฅ๏ธ Language (8)
        • Core Javascript (3)
        • Vanila Javascript (5)
      • ๐Ÿ”ง Library (7)
        • React JS (5)
        • WebSocket (2)
      • ๐Ÿงฑ Framework (12)
        • Node.js (9)
        • Django (3)
      • ๐Ÿ“ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต (8)
      • ๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (7)
      • ๐Ÿค” ์žก๋‹คํ•œ ์ง€์‹ (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐ŸŒˆ github.com
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊นƒํ—ˆ๋ธŒ ๋กœ๊ทธ์ธ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    Core JavaScript
    ์žฅ๊ณ 
    ์˜ค๋ธ”์™„
    ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
    ์œ ํŠœ๋ธŒ ํด๋ก ์ฝ”๋”ฉ
    ์ธ์ ‘๋ฆฌ์ŠคํŠธ
    Mongo
    nodejs
    ์žฅ๊ณ  ์•ฑ
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    dfs
    Django
    C์–ธ์–ด
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    socket.io
    ์žฅ๊ณ  url
    React
    useEffect
    ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    Express
    JS
    pipenv
    JavaScript
    ๋กœ๊ทธ์ธapi
    allow function
    reactjs
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
jaeyunim
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‚ฝ์ž… ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”