Berserker
Posts: 16657
|
Моя первая программа на СИ++. Сортировка массива строк.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define pointer *
#define deref *
#define nil 0
typedef char pointer pchar;
void ExchangeStrs (pchar &StrA, pchar &StrB)
{
pchar StrC = StrB;
StrB = StrA;
StrA = StrC;
}
void SortStrArr (pchar Arr[], int ArrSize)
{
int MiddleItemInd = -1;
pchar MiddleItem = nil;
int LeftInd = 0;
int RightInd = ArrSize - 1;
/***/
if (ArrSize == 2)
{
if (strcmp(Arr[0], Arr[1]) >= 0)
{
ExchangeStrs(Arr[0], Arr[1]);
}
}
else if (ArrSize > 2)
{
MiddleItemInd = ArrSize / 2;
MiddleItem = Arr[MiddleItemInd];
while (LeftInd <= RightInd)
{
if (strcmp(Arr[LeftInd], MiddleItem) >= 0)
{
ExchangeStrs(Arr[LeftInd], Arr[RightInd]);
RightInd--;
}
else
{
LeftInd++;
}
}
SortStrArr(&Arr[0], (RightInd + 1));
SortStrArr(&Arr[LeftInd], (ArrSize - LeftInd));
}
}
int main (int argc, pchar args[])
{
const int ARR_SIZE = 5;
pchar strs[ARR_SIZE] = {"ccc", "bbb", "aaa", "ddd", "hello"};
SortStrArr(strs, ARR_SIZE);
for (int i = 0; i < ARR_SIZE; i++)
{
printf("%s\n", strs[i]);
}
}
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
29.09.2010 01:26 |
|