59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
#include "General.h"
|
|
|
|
|
|
void CopyPointers(int * start_dest_index, int * start_src_index, unsigned int length)
|
|
{
|
|
unsigned int counter;
|
|
for (counter = ZERO; counter < length; counter++)
|
|
{
|
|
*(start_dest_index++) = *(start_src_index++);
|
|
}
|
|
}
|
|
|
|
int GetHaziyon(int * ptr_arr, unsigned int length)
|
|
{
|
|
int haziyon;
|
|
if (length % TWO)
|
|
{
|
|
haziyon = *(ptr_arr + (length / TWO) + ONE);
|
|
}
|
|
else
|
|
{
|
|
haziyon = (*(ptr_arr + (length / TWO)) + *(ptr_arr + (length / TWO) + ONE)) / TWO;
|
|
}
|
|
|
|
return (haziyon);
|
|
}
|
|
|
|
unsigned int SortFiveValuesAndGetHaziyon(int * ptr_arr, unsigned int length, int ** ptr_haziyons, void sort(int *, unsigned int))
|
|
{
|
|
int haziyon;
|
|
unsigned int length_arr_haziyons = ONE;
|
|
if (length > FIVE)
|
|
{
|
|
sort(ptr_arr + length - FIVE, FIVE);
|
|
haziyon = GetHaziyon(ptr_arr + length - FIVE, FIVE);
|
|
length_arr_haziyons = SortFiveValuesAndGetHaziyon(ptr_arr, length - FIVE, ptr_haziyons, sort) + ONE;
|
|
*ptr_haziyons = (int *)realloc(*ptr_haziyons, sizeof(int) * length_arr_haziyons);
|
|
}
|
|
else
|
|
{
|
|
sort(ptr_arr, length);
|
|
haziyon = GetHaziyon(ptr_arr, length);
|
|
*ptr_haziyons = (int *)malloc(sizeof(int));
|
|
}
|
|
*(ptr_haziyons + length_arr_haziyons - ONE) = haziyon;
|
|
|
|
return (length_arr_haziyons);
|
|
}
|
|
|
|
int * Select(int * ptr_arr, unsigned int length, int k)
|
|
{
|
|
unsigned int new_length;
|
|
int * temp_arr;
|
|
}
|
|
|
|
void main(void)
|
|
{
|
|
|
|
} |