C_C++/기초_알고리즘_문제

(C언어) 크기순으로 정렬된 배열에 값 삽입하기

고니자니 2022. 11. 27. 14:52
반응형

#배열 #삽입 #insert #array

 

 

크기 순으로 정렬되어 있는 배열에 값을 삽입하는 순서

- 삽입한 위치를 찾는다.

- 뒤에서부터 삽입할 위치까지 앞으로 한 칸씩 복사한다(이동한다)

- 삽입할 위치에 새로운 값을 넣는다.

 

크기 순으로 정렬되어 있는 배열에 값을 삽입하는 C언어 코드입니다.

 

C언어

#define _CRT_SECURE_NO_WARNINGS       // Visual Studio
#include <stdio.h>

void print(int a[], int n)
{
	int i;
	for (i = 0; i < n; i++)
		printf("%d ", a[i]);
	printf("\n");
}

int main()
{
	int i, j;
	int p[10] = { 10,20,30,40,50,60,70,80,90, 0 };
	int value;

	print(p, 9);

	printf("삽입할 값: ");
	scanf("%d", &value);

	// 삽입할 위치 찾기
	for (i = 0; i < 9; i++)
		if (p[i] > value) break;


	// i번째 삽입하기 위해서는 i뒤쪽 배열을 한 칸씩 뒤로 이동. 뒤에서부터 앞으로 이동한다.
	for (j = 8; j >= i; j--)
		p[j + 1] = p[j];
	p[i] = value;  // p[i] 번째에 value을 삽입
	print(p, 10);
}

 

 

(Output)

 

반응형