Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

정렬된 배열을 구현하는 C++ 프로그램

<시간/>

정렬된 배열은 각 요소가 숫자, 알파벳 등의 순서로 정렬된 배열입니다. 숫자 배열을 정렬하는 알고리즘에는 버블 정렬, 삽입 정렬, 선택 정렬, 병합 정렬, 빠른 정렬, 힙 정렬 등. 선택 정렬을 사용한 배열 정렬에 대한 자세한 내용은 아래에 나와 있습니다.

선택 정렬은 정렬된 배열을 생성하는 정렬 방법입니다. 배열에서 가장 작은 요소를 반복적으로 찾고 정렬되지 않은 부분의 시작 부분에 있는 요소와 교환하여 수행합니다.

선택 정렬을 사용하여 정렬된 배열을 구현하는 프로그램은 다음과 같습니다.

예시

#include<iostream>
using namespace std;
void selectionSort(int a[], int n) {
   int i, j, min, temp;
   for (i = 0; i < n - 1; i++) {
      min = i;
      for (j = i + 1; j < n; j++)
      if (a[j] < a[min])
      min = j;
      temp = a[i];
      a[i] = a[min];
      a[min] = temp;
   }
}
int main() {
   int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
   int n = sizeof(a)/ sizeof(a[0]);
   int i;
   cout<<"Given array is:"<<endl;
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   cout<<endl;
   selectionSort(a, n);
   printf("\nSorted array is: \n");
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   return 0;
}

출력

Given array is:
22 91 35 78 10 8 75 99 1 67
Sorted array is:
1 8 10 22 35 67 75 78 91 99

위 프로그램에서 selectionSort()는 선택 정렬을 사용하여 배열 a[]를 정렬하는 함수입니다. selectionSort()에는 두 개의 for 루프가 있습니다. 외부 for 루프의 각 반복에서 i 뒤의 나머지 배열에서 최소 요소를 찾은 다음 현재 i에 있는 요소와 교환합니다. 이것은 배열이 정렬될 때까지 반복됩니다. 이것은 아래에 나와 있습니다.

void selectionSort(int a[], int n) {
   int i, j, min, temp;
   for (i = 0; i < n - 1; i++) {
      min = i;
      for (j = i + 1; j < n; j++)
      if (a[j] < a[min])
      min = j;
      temp = a[i];
      a[i] = a[min];
      a[min] = temp;
   }
}

main() 함수에서 배열 a[]가 정의됩니다. 그런 다음 함수 selectionSort()가 배열 a[] 및 크기 n으로 호출됩니다. 마지막으로 정렬된 배열이 표시됩니다. 이것은 아래에 나와 있습니다.

int main() {
   int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
   int n = sizeof(a)/ sizeof(a[0]);
   int i;
   cout<<"Given array is:"<<endl;
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   cout<<endl;
   selectionSort(a, n);
   printf("\nSorted array is: \n");
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   return 0;
}