21xrx.com
2024-12-22 21:37:49 Sunday
登录
文章检索 我的文章 写文章
使用C++随机产生10万个数,并进行冒泡排序,并将结果存入文件
2023-07-05 00:36:45 深夜i     --     --
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万个数,并且用冒泡排序算法按从小到大排序并将结果存储在文件中的程序。这样的结果不仅可以应对我们在日常开发中遇到的算法开销问题,同时也实现了对排序算法的更深入的理解。

  
  

评论区

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