21xrx.com
2024-11-22 07:41:29 Friday
登录
文章检索 我的文章 写文章
C++:在类中定义数组并实现排序
2023-07-08 00:48:40 深夜i     --     --
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++中,类提供了一种封装数据和操作的机制,使代码更加简洁和可维护。通过在类中定义数组并实现排序,我们可以更轻松地实现复杂的算法,提高代码的可读性和可靠性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复