⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sao3f.cpp

📁 一个包含若干个类
💻 CPP
字号:

// Definitions of function(s) in sao3f.h

#include "sao3f.h"

// element_Size is the size of each element

void swap(void const *element1, void const *element2, size_t element_Size)
{
    char *temp = new char,
         *elem1, *elem2;
    elem1 = (char *)element1;
    elem2 = (char *)element2;
    for(int i = 0; i < element_Size; i++, elem1++, elem2++){
        *temp = *elem1;
        *elem1 = *elem2;
        *elem2 = *temp;
    }
    delete temp;
}

// produce a random integer from rand_min
// to rand_max by rand_step
int rand(int rand_min, int rand_max, int rand_step)
{
    return rand() % ( ( rand_max - rand_min ) / rand_step + 1 )
        * rand_step + rand_min;
}

// array_Size is the size of array,
// element_Size is the size of each element in array

void shuffle(void const *array, size_t array_Size, size_t element_Size)
{
    void *element1, *element2;
    srand(time(0));
    for(int i = 0; i < array_Size / element_Size; i++){
        element1 = (char *)array + i * element_Size;
        element2 = (char *)array + rand(i * element_Size,
            array_Size - element_Size, element_Size);
        swap(element1, element2, element_Size);
    }
}

long hcd(long a, long b)
{
    if(a == 0 || b == 0)
        return 1;
    while(a != 0){
        swap(&a, &b, sizeof(long));
        a %= b;
    }
    return b;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -