本篇文章主要介绍了"0907-象棋五子棋代码分析/寻找算法以及排序算法",主要涉及到方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
象棋五子棋代码分析编译代码报错:错误 1 error MSB8031: Building an MFC project for a non-Unicode ch...
#include
#include
using namespace std;
int main1()
{
int a[10];
for (int i = 0; i < 10; i++)
a[i] = rand() % 100;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10 - i; j++)
{
if (a[j] < a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
for (int i = 0; i < 10; i++)
cout << a[i] << " ";
system("pause");
return 0;
}
木桶.cpp
#include
#include
#define SIZE 100
void bucket_sort(unsigned *, int);//桶排序函数的原型
void print(unsigned *, int);//打印函数的原型
int main8()
{
unsigned array[SIZE];
int i = 0;
//为数组元素随机赋值
for (i = 0; i < SIZE; ++i)
array[i] = rand();
printf("排序前\n");
print(array, SIZE);
//排序
bucket_sort(array, SIZE);
printf("排序后\n");
print(array, SIZE);
system("pause");
return 0;
}
void bucket_sort(unsigned * arr, int len)
{
unsigned *buckets[10];//指针数组
unsigned n = 1;//用于取整数各位上的值
int index;//数组下标计数索引
int indexs[10];//各个桶下标计数索引
int i, j;
//分配动态内存作为桶
for (i = 0; i < 10; ++i)
buckets[i] = (unsigned *)malloc(sizeof(unsigned)*len);
while (1)
{
//计数索引清零
index = 0;
for (i = 0; i < 10; ++i)
indexs[i] = 0;
//数组至桶
for (i = 0; i < len; ++i)
buckets[arr[i] / n % 10][indexs[arr[i] / n % 10]++] = arr[i];
//桶至数组
for (i = 0; i < 10; ++i)
for (j = 0; j < indexs[i]; ++j)
arr[index++] = buckets[i][j];
//为取元素的下一位做准备
n *= 10;
//判断是否该结束
for (i = 0; arr[i] < n&&i < len; ++i);
if (i == len) break;
}
//释放动态内存
for (i = 0; i < 10; ++i)
free(buckets[i]);
}
void print(unsigned * arr, int len)
{
int i = 0;
for (i = 0; i < len; ++i)
{
printf("%8d", arr[i]);
//5个元素一行
if ((i + 1) % 5 == 0)
printf("\n");
}
}
希尔.cpp