반응형
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <stack>
using namespace std;
void insertionSort(int arr[], int n) //삽입정렬함수
{
int temp = 0;
int j;
for (int i = 1; i < n; i++) //배열의 1번인덱스부터
{
temp = arr[i]; //temp에 저장
for (j = i - 1; j >= 0 && arr[j] > temp; j--) //i보다 작은 인덱스와 비교해서 arr[j]가 temp보다 크다면
{
arr[j + 1] = arr[j]; //오른쪽으로 값 이동
}
arr[j+1] = temp; //위에 for문 조건에 맞지않으면 temp는 원래 있던 자리에 값에저장되고 조건에 맞다면 j--된 j에서 1을 더한 인덱스에 temp가 저장됨으로 정수의 위치가 변경된다.
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin >> n; //배열의 개수입력
int* arr = new int[n];
for (int i = 0; i < n; i++) //배열의 들어갈 정수 입력
cin >> arr[i];
insertionSort(arr, n); //오름차순정렬
for (int i = 0; i < n; i++) //결과출력
cout << arr[i] << " ";
return 0;
}
반응형
'Programming > Data Structure and Algorithm' 카테고리의 다른 글
이진탐색 예제 주석포함 c++ (0) | 2022.01.20 |
---|---|
자료구조 탐색 기초 개념 정리 (0) | 2022.01.10 |
자료구조 정렬(Sorting) 기초 개념 정리 (0) | 2022.01.08 |
자료구조 우선순위큐(Priority Queue) 기초 개념 정리 (0) | 2022.01.06 |
자료구조 트리(Tree) 기초 개념정리 (0) | 2022.01.02 |