// 重新移动数字的元素使得后半部元素间隔插入前半部.cpp : Defines the entry point for the console application.
//
// a1a2a3a4a5a6 b1b2b3b4b5b6 -> a1b1a2b2a3b3a4b4a5b5a6b6
#include "stdafx.h"
#include <string.h>
void swapArray(char *Array, int x, int y)
{
char tmp = Array[x];
Array[x] = Array[y];
Array[y] = tmp;
}
void printArray(char *Array, int len)
{
for (int idx = 0; idx < len; idx++)
{
printf("%c ", Array[idx]);
}
printf("\r\n");
}
void reSortArray(char *Array, int len)
{
int N = len >> 1;
for (int swapLevel = 1; swapLevel < N; swapLevel++)
{
int swapIdx = N-swapLevel;
for (int swapTimesPerLevel = 1; swapTimesPerLevel <= swapLevel; swapTimesPerLevel++)
{
swapArray(Array, swapIdx, swapIdx+1);
swapIdx+=2;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char Array[] = "abcdefg1234567";
int arrLen = strlen(Array);
printArray(Array, arrLen);
reSortArray(Array, strlen(Array));
printArray(Array, arrLen);
return 0;
}
重新移动数字的元素使得后半部元素间隔插入前半部
最新推荐文章于 2019-07-22 19:36:00 发布