C ++
 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()は、selectionsortを使用して配列a[]をソートする関数です。 selectionSort()には2つの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;
}

  1. C++でソートされた配列の2乗

    ソートされた整数の指定された配列では、タスクはすべての配列要素の平方を印刷し、配列をソートされた順序で印刷することです。たとえば、 入力-1 − arr[ ] = { -3,-1,0,1,4,6 }; 出力 − {0,1,1,9,16, 36} 説明 −指定された配列[-3、-1,0,1,4,6]の各要素の二乗は[0,1,1,9,16,36]です。 入力-2 − arr[ ]= { 0,1,2,8,9 } 出力 − {0,1,4,64,81} 説明 −指定された配列[0,1,2,8,9]の各要素の二乗は[0,1,4,64,81]です。 この問題を解決するためのアプローチ

  2. C++で配列のビットノイズをチェックするプログラム

    N個の整数の配列arr[N]が与えられた場合、タスクは、与えられた配列がバイトニックであるかどうかをチェックすることです。指定されたアレイがバイトニックである場合は、「はい、バイトニックアレイです」と出力します。そうでない場合は、「いいえ、バイトニックアレイではありません」と出力します。 Bitonicアレイとは、アレイが最初に厳密に昇順で、次に厳密に降順である場合です。 この配列のように、arr [] ={1、2、3、4、2、-1、-5}はバイトニック配列です。これは、4までは厳密に昇順であり、4以降は厳密に降順であるためです。 入力 arr[] = {1, 3, 5, 4,