📄 sao3f.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 + -