21xrx.com
2025-03-27 07:00:00 Thursday
文章检索 我的文章 写文章
C++:在类中定义数组并实现排序
2023-07-08 00:48:40 深夜i     8     0
C++ 数组 排序

C++是一种高级编程语言,广泛应用于计算机科学和工程领域,具有很高的可扩展性和可移植性。在C++中,我们可以使用数组来存储多个数据元素,并使用排序算法对这些元素进行排序。

在C++中,我们可以在类中定义数组,并通过重载运算符实现排序。以下是一个示例代码:

#include<iostream>
using namespace std;
class Array {
  private:
   int arr[100];
   int n;
  public:
   void get_data(int num) {
     n = num;
     for(int i=0;i<n;i++) {
      cin>>arr[i];
     }
   }
   void display_data() {
     for(int i=0;i<n;i++) {
      cout<<arr[i]<<" ";
     }
     cout<<endl;
   }
   void bubble_sort() {
     int temp;
     for(int i=0;i<n-1;i++) {
      for(int j=0;j<n-i-1;j++) {
        if(arr[j]>arr[j+1]) {
         temp=arr[j];
         arr[j]=arr[j+1];
         arr[j+1]=temp;
        }
      }
     }
   }
   void selection_sort() {
     int min;
     for(int i=0;i<n-1;i++) {
      min=i;
      for(int j=i+1;j<n;j++) {
        if(arr[j]<arr[min])
         min=j;
       
      }
      int temp=arr[min];
      arr[min]=arr[i];
      arr[i]=temp;
     }
   }
   void insertion_sort() {
     int j, temp;
     for(int i=1;i<n;i++){
      temp = arr[i];
      j = i-1;
      while((temp<arr[j]) && (j>=0)){
        arr[j+1] = arr[j];
        j--;
      }
      arr[j+1] = temp;
     }
   }
};
int main() {
  Array obj;
  int num;
  cout<<"Enter number of elements: ";
  cin>>num;
  cout<<"Enter the elements: ";
  obj.get_data(num);
  obj.display_data();
  obj.bubble_sort();
  obj.display_data();
  obj.selection_sort();
  obj.display_data();
  obj.insertion_sort();
  obj.display_data();
  return 0;
}

在上述代码中,我们定义了一个包含一个私有成员变量(整型数组)和三种排序算法(冒泡排序、选择排序和插入排序)的类Array。我们使用get_data()方法从用户输入中获取数组元素;使用display_data()方法将数组元素输出到控制台;使用bubble_sort(),selection_sort()和insertion_sort()方法分别调用三种不同的排序算法进行排序。

在主函数中,我们首先实例化一个Array对象,并使用get_data()方法从用户输入中获取元素值。然后,我们调用display_data()方法在控制台上输出这些元素。接下来,我们依次调用三种排序方法,并使用display_data()方法在控制台上输出已排序的元素。

在C++中,类提供了一种封装数据和操作的机制,使代码更加简洁和可维护。通过在类中定义数组并实现排序,我们可以更轻松地实现复杂的算法,提高代码的可读性和可靠性。

  
  

评论区