21xrx.com
2025-06-27 05:43:41 Friday
登录
文章检索 我的文章 写文章
使用C++随机产生10万个数,并进行冒泡排序,并将结果存入文件
2023-07-05 00:36:45 深夜i     16     0
C++ 随机数生成 冒泡排序 文件存储

在现代计算机领域,算法的效率和速度都是我们需要考虑的重要因素。而排序算法也是其中一个相当重要的部分。今天,我们将使用C++编写一个随机数生成器和冒泡排序算法来应对这种挑战。

首先我们需要生成10万个随机数。我们可以使用C++中的随机数生成器来完成这个任务。为此,需要包含"cstdlib"和"ctime"头文件以及利用time(NULL)函数来进行随机数种子的初始化。生成的随机数范围选取了1-100000之间的整数。整个过程可以通过以下代码完成:

#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;
const int N = 100000;
int a[N];
int main()
{
  srand(time(NULL));
  ofstream out("result.txt");
  for (int i = 0; i < N; ++i)
  {
    a[i] = rand() % 100000 + 1;
    out << a[i] << endl;
  }
  out.close();
  return 0;
}

接下来我们需要实现一个冒泡排序算法。该算法的基本思路是,每次将相邻的两个数进行比较,如果当前数比后面的数大,就进行交换。交换操作会使得最大的数沉到底部,因此我们只需要对整个数列进行足够次的比较,就可以将所有数按照从小到大的顺序排好。具体实现代码如下:

void bubble_sort(int a[], int n)
{
  for (int i = n - 1; i >= 0; --i)
  {
    bool flag = false;
    for (int j = 0; j < i; ++j)
    {
      if (a[j] > a[j + 1])
      {
        swap(a[j], a[j + 1]);
        flag = true;
      }
    }
    if (!flag) break;
  }
}

在排序算法完成后,我们需要将结果存储在文件中以方便查看。使用C++的ofstream对象即可实现文件写入操作。其中,将排序结果从小到大写入文件中的代码如下:

ofstream out("result.txt");
bubble_sort(a, N);
for (int i = 0; i < N; ++i)
{
  out << a[i] << endl;
}
out.close();

通过以上代码的操作,我们已经完成了一个可以随机生成10万个数,并且用冒泡排序算法按从小到大排序并将结果存储在文件中的程序。这样的结果不仅可以应对我们在日常开发中遇到的算法开销问题,同时也实现了对排序算法的更深入的理解。

  
  

评论区