zoukankan      html  css  js  c++  java
  • 对数器的使用(用来生成随机数组来判断排序算法是否正确)

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

    下面用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; }
  • 相关阅读:
    vue 路由跳转返回上一级
    js中Let和Var的区别
    JS实现电话号码校验座机:区号号码、或11位手机号
    VUE 监听 对象属性值变化的三种方式
    vue中computed的用法
    elementUI中input输入框,强制输入数字,并限制输入长度
    C++中__int64用法
    WIN10计算器设计可能出现的坑
    跳转acticity
    asp.net邮件发送
  • 原文地址:https://www.cnblogs.com/love-jelly-pig/p/8341921.html
Copyright © 2011-2022 走看看