本篇文章主要介绍了"0907-象棋五子棋代码分析/寻找算法以及排序算法",主要涉及到方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
象棋五子棋代码分析编译代码报错:错误 1 error MSB8031: Building an MFC project for a non-Unicode ch...
#include
#include
#include
#include
static void PrintArr(int *pnArr, int nLen)
{
for (int i = 0; i < nLen; i++)
{
printf("%d ", pnArr[i]);
}
printf("\n");
}
void CountSort(int *pnArr, int nArrR[], int nLen, int k)
{
int *pnArrTmp = (int *)malloc(sizeof(int) * k);
for (int i = 0; i < k; i++)
{
pnArrTmp[i] = 0;
}
for (int i = 0; i < nLen; i++)
{
pnArrTmp[pnArr[i]] = pnArrTmp[pnArr[i]] + 1;
}
PrintArr(pnArrTmp, k);
for (int i = 1; i < k; i++)
{
pnArrTmp[i] = pnArrTmp[i] + pnArrTmp[i - 1];
}
PrintArr(pnArrTmp, k);
for (int i = nLen - 1; i >= 0; i--)
{
nArrR[pnArrTmp[pnArr[i]] - 1] = pnArr[i];
pnArrTmp[pnArr[i]] = pnArrTmp[pnArr[i]] - 1;
}
}
int main9()
{
int nArr[11] = { 0, 2, 1, 3, 2, 6, 9, 7, 4, 8, 6 };
int nArrR[11]; //存放排序后的结果
PrintArr(nArr, 11);
CountSort(nArr, nArrR, 11, 10);
PrintArr(nArrR, 11);
system("pause");
return 0;
}
快速.cpp
#include
using namespace std;
int a[200001], n;
void swap(int &a, int &b){
int tmp = a;
a = b;
b = tmp;
}
int partition(int p, int r){
int rnd = rand() % (r - p + 1) + p;
swap(a[rnd], a[r]);
int pvt = r, i = p - 1;
for (int j = i + 1; j < r; j++)
if (a[j] < a[pvt])
swap(a[j], a[++i]);
swap(a[++i], a[pvt]);
return i;
}
void qsort(int p, int r){
if (p < r){
int q = partition(p, r);
qsort(p, q - 1);
qsort(q + 1, r);
}
}
int main5()
{
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
qsort(0, n - 1);
for (int i = 0; i < n; i++)
cout << a[i];
system("pause");
return 0;
}
冒泡.cpp