반응형
정렬
- 내부정렬
- 주기억장치내 저장된 소규모 자료 대상
- 삽입정렬, 선택정렬, 버블정렬, 쉘정렬, 퀵정렬, 2원합병정렬, 히프정렬, 기수정렬 등
- 외부정렬
- 테이프 등에 저장된 대규모 자료 대상
- 자연2원합병, 균형2원합병, 균형m원합병, 다단계합병 등
내부정렬
- 입력 자료
- 입력 데이터는 대부분 배열에 저장
일부는 연결리스트 사용 - A[1],A[2],...,A[n]을 입력으로 봄
간혹, 경우에 따라 A[0]를 포함하기도 함 ( C 언어의 경우, A[0]부터 시작 )
정렬 프로그램 완성
void sort()
{
/* 이 곳에 알맞은 내용을 추가하시오. */
/* 입력 데이타는 L[]에 들어 있으면, 전체 원소 개수는 SIZE이다. */
}
#include <iostream>
using namespace std;
const int SIZE = 15;
int L[SIZE] = { 10, 4, 7, 1, -2, 12, 28, 66, 9, 3, 5, 7, 6, 21, 11 };
void print_data()
{
for(int i = 0; i < SIZE; i++)
cout << " " << L[i] << " ";
cout << endl;
}
void sort()
{
// ?
}
void main()
{
cout << "Input Data : ";
print_data();
/* sort the elements of array L[] in ascending order */
sort();
cout << "\n\nSorted Data : ";
print_data();
}
#include <iostream>
using namespace std;
const int SIZE = 15;
int L[SIZE] = { 10, 4, 7, 1, -2, 12, 28, 66, 9, 3, 5, 7, 6, 21, 11 };
int temp;
void print_data()
{
for(int i = 0; i < SIZE; i++)
cout << " " << L[i] << " ";
cout << endl;
}
void sort()
{
for (int i = 0; i < SIZE - 1; i++)
{
for (int j = 0; j < SIZE - 1 - i; j++)
{
if (L[j] > L[j + 1])
{
temp = L[j];
L[j] = L[j + 1];
L[j + 1] = temp;
}
}
}
}
void main()
{
cout << "Input Data : ";
print_data();
sort();
cout << "\n\nSorted Data : ";
print_data();
}
반응형
'공부 > 자료구조 | 알고리즘' 카테고리의 다른 글
[알고리즘] 삽입 정렬 insertion sort (0) | 2019.09.22 |
---|---|
[알고리즘] 버블 정렬 bubble sort / flag (0) | 2019.09.21 |
[알고리즘] 순환 알고리즘 Recursion / 하노이 탑 (0) | 2019.09.15 |
자료구조와 알고리즘의 관계 (0) | 2019.09.14 |
[자료구조] 원형 큐 Circular Queue (0) | 2019.09.14 |