sao3f.cpp
来自「一个包含若干个类」· C++ 代码 · 共 56 行
CPP
56 行
// 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 + =
减小字号Ctrl + -
显示快捷键?