21xrx.com
2025-04-08 14:18:56 Tuesday
文章检索 我的文章 写文章
C++中一维数组的输入输出、查找、排序等算法
2023-07-11 06:03:21 深夜i     10     0
C++ 一维数组 输入输出 查找 排序

C++是一种广泛使用的高级编程语言,支持一维数组的输入输出、查找和排序等算法。一维数组是指存储在相邻内存空间上的一组相同类型的元素。

一维数组的输入输出

在C++中,可以使用cin和cout流分别输入和输出一维数组的元素。例如,下面的代码演示了如何输入和输出一个整数型数组:

#include <iostream>
using namespace std;
int main()
{
  int arr[5];
  cout << "请输入数组元素:";
  for(int i=0; i<5; i++)
  {
    cin >> arr[i];
  }
  cout << "数组元素为:";
  for(int i=0; i<5; i++)
  {
    cout << arr[i] << " ";
  }
  return 0;
}

在上面的代码中,我们首先定义了一个大小为5的整数型数组arr,并使用for循环输入和输出数组元素。

一维数组的查找

在C++中,常见的一维数组查找算法包括线性查找和二分查找。

线性查找是最简单的一种查找算法,它从数组的第一个元素开始依次比较,直到找到目标元素或遍历完整个数组。例如,下面的代码演示了如何使用线性查找算法在一个整数型数组中查找目标元素:

#include <iostream>
using namespace std;
int linearSearch(int arr[], int n, int target)
{
  for(int i=0; i<n; i++)
  {
    if(arr[i] == target)
      return i;
  }
  return -1;
}
int main()
{
  int arr[5] = 7;
  int target = 5;
  int index = linearSearch(arr, 5, target);
  if(index == -1)
  
    cout << "目标元素未找到!" << endl;
  
  else
  
    cout << "目标元素下标为:" << index << endl;
  
  return 0;
}

在上面的代码中,我们首先定义了一个大小为5的整数型数组arr,并使用linearSearch函数在数组中查找目标元素target。

二分查找是一种更为高效的查找算法,它要求数组已经排好序。二分查找从中间位置开始比较,如果目标元素小于中间元素,则在左半部分继续查找,否则在右半部分继续查找,直到找到目标元素或确定目标元素不存在为止。例如,下面的代码演示了如何使用二分查找算法在一个整数型数组中查找目标元素:

#include <iostream>
using namespace std;
int binarySearch(int arr[], int n, int target)
{
  int left = 0, right = n-1;
  while(left <= right)
  {
    int mid = left + (right - left) / 2;
    if(arr[mid] == target)
      return mid;
    else if(arr[mid] < target)
      left = mid + 1;
    else
      right = mid - 1;
  }
  return -1;
}
int main()
{
  int arr[] = 5;
  int target = 3;
  int index = binarySearch(arr, 5, target);
  if(index == -1)
  
    cout << "目标元素未找到!" << endl;
  
  else
  
    cout << "目标元素下标为:" << index << endl;
  
  return 0;
}

在上面的代码中,我们首先定义了一个大小为5的整数型数组arr,并使用binarySearch函数在数组中查找目标元素target。

一维数组的排序

在C++中,常见的一维数组排序算法包括冒泡排序、选择排序和快速排序。

冒泡排序是一种最简单的排序算法,它通过依次比较相邻元素的大小来实现排序。例如,下面的代码演示了如何使用冒泡排序算法对一个整数型数组进行排序:

#include <iostream>
using namespace std;
void swap(int &a, int &b)
  int temp = a;
  a = b;
  b = temp;
void bubbleSort(int arr[], int n)
{
  for(int i=0; i<n-1; i++)
  {
    for(int j=0; j<n-i-1; j++)
    {
      if(arr[j] > arr[j+1])
        swap(arr[j], arr[j+1]);
    }
  }
}
int main()
{
  int arr[] = 2;
  bubbleSort(arr, 5);
  cout << "排序结果为:";
  for(int i=0; i<5; i++)
  {
    cout << arr[i] << " ";
  }
  return 0;
}

在上面的代码中,我们首先定义了一个大小为5的整数型数组arr,并使用bubbleSort函数对其进行排序。

选择排序是一种简单的排序算法,它通过选择最小值来实现排序。例如,下面的代码演示了如何使用选择排序算法对一个整数型数组进行排序:

#include <iostream>
using namespace std;
void swap(int &a, int &b)
  int temp = a;
  a = b;
  b = temp;
void selectionSort(int arr[], int n)
{
  for(int i=0; i<n-1; i++)
  {
    int minIndex = i;
    for(int j=i+1; j<n; j++)
    {
      if(arr[j] < arr[minIndex])
        minIndex = j;
    }
    if(minIndex != i)
      swap(arr[i], arr[minIndex]);
  }
}
int main()
{
  int arr[] = 8;
  selectionSort(arr, 5);
  cout << "排序结果为:";
  for(int i=0; i<5; i++)
  {
    cout << arr[i] << " ";
  }
  return 0;
}

在上面的代码中,我们首先定义了一个大小为5的整数型数组arr,并使用selectionSort函数对其进行排序。

快速排序是一种高效的排序算法,它通过选择一个基准元素并将数组划分为两部分来实现排序。例如,下面的代码演示了如何使用快速排序算法对一个整数型数组进行排序:

#include <iostream>
using namespace std;
void swap(int &a, int &b)
  int temp = a;
  a = b;
  b = temp;
int partition(int arr[], int low, int high)
{
  int pivot = arr[low];
  while(low < high)
  {
    while(low < high && arr[high] >= pivot)
      high--;
    arr[low] = arr[high];
    while(low < high && arr[low] <= pivot)
      low++;
    arr[high] = arr[low];
  }
  arr[low] = pivot;
  return low;
}
void quickSort(int arr[], int low, int high)
{
  if(low < high)
  {
    int pivotIndex = partition(arr, low, high);
    quickSort(arr, low, pivotIndex-1);
    quickSort(arr, pivotIndex+1, high);
  }
}
int main()
{
  int arr[] = 8;
  quickSort(arr, 0, 4);
  cout << "排序结果为:";
  for(int i=0; i<5; i++)
  {
    cout << arr[i] << " ";
  }
  return 0;
}

在上面的代码中,我们首先定义了一个大小为5的整数型数组arr,并使用quickSort函数对其进行排序。

  
  

评论区

请求出错了