有一个由 100 个块组成的数组,这里每个块包含一种颜色,这种颜色随机来自一个字符数组 a,b,c,...,z。
例如:abdegihfda
现在您必须编写一个程序,该程序将返回具有以下条件的排序数组。
- 应遵循以下交换顺序。
字符最大交换
一个 1
b 2
3
……
26
输出:aabddefhgi
我使用了以下方法。
//返回块数
int getNoOfBlocks();
//返回特定块的字母
字符 getData(int);
//交换值
无效交换块(int,int);
无效排列块(无效)
{
int size = getNoOfBlocks();
for(int i = 0 ; i < size; i++)
{
int min = getData(i)-97;
int pos = 0;
int ascii = 0;
for(int j = i + 1; j < size; j++)
{
ascii = getData(j)-97;
if(min > ascii)
{
min = ascii;
pos = j;
}
}
swapBlock(i, pos+1);
}
}