• 对数器的使用(用来生成随机数组来判断排序算法是否正确)


    对数器生成一个随机数组来排序,从而验证。

    下面用C++写一个简单的对数器来完成冒泡排序。

    代码:

    #include <iostream>
    #include <vector>
    #include <random>
    #include <algorithm>
    using namespace std;
    //用模板整型和浮点型都可以使用
    template<typename T>
    void BubbleSort(T array[],int len)
    {
        if (len < 2)
        {
            return;
        }
        int i, j;
        //j从数组末尾开始,i一直遍历到j,相邻比较,如果当前大于后一个元素就交换
        //遍历一遍后j--,说明最大数已经到了数组末尾,下一次选出次大数放在倒数第二个位置,所以j--
        for (j = len - 1; j >= 0; j--)
            for (i = 0; i < j; i++)
            {
                if (array[i] > array[i + 1])
                {
                    int temp = array[i];
                    array[i] = array[i + 1];
                    array[i + 1] = temp;
                }
            }
    }
    template<typename TT>
    void random_array(TT arr1,TT arr2)
    {
      //设置成静态变量可以防止每次调用生成一样的随机数
      //生成-100到100的均匀分布随机数,e为随机引擎
    static uniform_int_distribution<int> u(-100, 100);static default_random_engine e;
      //生成两个一样的随机数组,长度为100
    for (int i = 0; i < 100; i++) { arr1[i] = u(e); arr2[i] = arr1[i]; }
      //一个用sort函数进行排序,一个用我们写的排序方法进行排序。如果完全一样,那么result的值一直不变,为1,打印Nice! sort(arr1,arr1
    +100); BubbleSort(arr2,100); bool result = 1; for (int i = 0; i < 100; i++) { if (arr1[i] != arr2[i]) { result = 0; break; } } if (result == 1) { cout << "Nice!" << endl; } } int main() { int arr1[100], arr2[100]; for (int i = 0; i < 10; i++) { random_array(arr1, arr2); cout << arr1[0] << endl; //看一下每一次生成的元素是否一样 } return 0; }
  • 相关阅读:
    第06组Alpha冲刺(4/6)
    第06组Alpha冲刺(3/6)
    第06组Alpha冲刺(2/6)
    第06组 Alpha冲刺 (1/6)
    08-js函数
    07-数组
    06-js分支
    05-js运算符
    04-js变量
    03-css3D转换
  • 原文地址:https://www.cnblogs.com/love-jelly-pig/p/8341921.html
Copyright © 2020-2023  润新知