Skip to content

Commit 625b176

Browse files
committed
sort algorithms: remove unneeded local pointer
- remove unneeded local pointer elements from sort algorithms
1 parent 7667f3b commit 625b176

File tree

5 files changed

+23
-30
lines changed

5 files changed

+23
-30
lines changed

Src/sort/bubble_sort.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@
3939
void
4040
BubbleSort_sort(byte_t* buffer, int32_t number_of_elements, int32_t element_size,
4141
bool (*compareFun)(void* first, void* second)) {
42-
byte_t* elements = buffer;
4342
bool swapped = true;
4443
int32_t i = 0;
4544
while (swapped) {
4645
swapped = false;
4746
for (int32_t j = 0; j < (number_of_elements - i - 1); ++j) {
48-
if (compareFun(&elements[j * element_size], &elements[(j + 1) * element_size])) {
49-
Utils_swapElements(&elements[j * element_size], &elements[(j + 1) * element_size], (uint32_t)element_size);
47+
if (compareFun(&buffer[j * element_size], &buffer[(j + 1) * element_size])) {
48+
Utils_swapElements(&buffer[j * element_size], &buffer[(j + 1) * element_size], (uint32_t)element_size);
5049
swapped = true;
5150
}
5251
}

Src/sort/heap_sort.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,28 +41,27 @@ Heapify(byte_t* buffer, int32_t n, int32_t i, int32_t element_size,
4141
bool (*compareFun)(void* first, void* second)) {
4242
bool continue_iterating = true;
4343
int32_t index = i;
44-
byte_t* elements = buffer;
4544

4645
while (continue_iterating) {
4746
int32_t largest = index;
4847
int32_t left = (2 * index) + 1;
4948
int32_t right = (2 * index) + 2;
5049

51-
bool compare_ret_value = compareFun(&elements[left * element_size],
52-
&elements[largest * element_size]);
50+
bool compare_ret_value = compareFun(&buffer[left * element_size],
51+
&buffer[largest * element_size]);
5352

5453
if ((left < n) && (compare_ret_value)) {
5554
largest = left;
5655
}
5756

58-
compare_ret_value = compareFun(&elements[right * element_size], &elements[largest * element_size]);
57+
compare_ret_value = compareFun(&buffer[right * element_size], &buffer[largest * element_size]);
5958

6059
if ((right < n) && (compare_ret_value)) {
6160
largest = right;
6261
}
6362

6463
if (largest != index) {
65-
Utils_swapElements(&elements[index * element_size], &elements[largest * element_size], (uint32_t)element_size);
64+
Utils_swapElements(&buffer[index * element_size], &buffer[largest * element_size], (uint32_t)element_size);
6665
index = largest;
6766
} else {
6867
continue_iterating = false;
@@ -74,13 +73,12 @@ void
7473
HeapSort_sort(byte_t* buffer, int32_t number_of_elements, int32_t element_size,
7574
bool (*compareFun)(void* first, void* second)) {
7675
int32_t i;
77-
byte_t* elements = buffer;
7876
for (i = (number_of_elements / 2) - 1; i >= 0; --i) {
79-
Heapify(elements, number_of_elements, i, element_size, compareFun);
77+
Heapify(buffer, number_of_elements, i, element_size, compareFun);
8078
}
8179

8280
for (i = number_of_elements - 1; i >= 0; --i) {
83-
Utils_swapElements(&elements[0], &elements[i * element_size], (uint32_t)element_size);
84-
Heapify(elements, i, 0, element_size, compareFun);
81+
Utils_swapElements(&buffer[0], &buffer[i * element_size], (uint32_t)element_size);
82+
Heapify(buffer, i, 0, element_size, compareFun);
8583
}
8684
}

Src/sort/insertion_sort.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,20 @@
3939
void
4040
InsertionSort_sort(byte_t* buffer, int32_t number_of_elements, int32_t element_size,
4141
bool (*compareFun)(void* first, void* second)) {
42-
byte_t* elements = buffer;
4342
static byte_t max_element[MAX_ELEMENT_SIZE];
4443
byte_t* element = &max_element[0];
4544

4645
for (int32_t i = 1; i < number_of_elements; ++i) {
47-
memcpy(element, &elements[i * element_size], (size_t)element_size);
46+
memcpy(element, &buffer[i * element_size], (size_t)element_size);
4847

4948
int32_t j = i - 1;
50-
bool compare = compareFun(&elements[j * element_size], element);
49+
bool compare = compareFun(&buffer[j * element_size], element);
5150

5251
while ((j >= 0) && compare) {
53-
memcpy(&elements[(j + 1) * element_size], &elements[j * element_size], (size_t)element_size);
52+
memcpy(&buffer[(j + 1) * element_size], &buffer[j * element_size], (size_t)element_size);
5453
--j;
55-
compare = compareFun(&elements[j * element_size], element);
54+
compare = compareFun(&buffer[j * element_size], element);
5655
}
57-
memcpy(&elements[(j + 1) * element_size], element, (size_t)element_size);
56+
memcpy(&buffer[(j + 1) * element_size], element, (size_t)element_size);
5857
}
5958
}

Src/sort/merge_sort.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
static void
4040
MergeHalves(byte_t* buffer, int32_t element_size, int32_t left, int32_t mid, int32_t right,
4141
bool (*compareFun)(void* first, void* second)) {
42-
byte_t* elements = buffer;
4342
byte_t left_half[MAX_HALVES_SIZE];
4443
byte_t right_half[MAX_HALVES_SIZE];
4544
int32_t i;
@@ -49,11 +48,11 @@ MergeHalves(byte_t* buffer, int32_t element_size, int32_t left, int32_t mid, int
4948
int32_t number_of_elements_2 = right - mid;
5049

5150
for (i = 0; i < number_of_elements_1; ++i) {
52-
memcpy(&left_half[i * element_size], &elements[(left + i) * element_size], (size_t)element_size);
51+
memcpy(&left_half[i * element_size], &buffer[(left + i) * element_size], (size_t)element_size);
5352
}
5453

5554
for (j = 0; j < number_of_elements_2; ++j) {
56-
memcpy(&right_half[j * element_size], &elements[(mid + 1 + j) * element_size], (size_t)element_size);
55+
memcpy(&right_half[j * element_size], &buffer[(mid + 1 + j) * element_size], (size_t)element_size);
5756
}
5857

5958
i = 0;
@@ -63,23 +62,23 @@ MergeHalves(byte_t* buffer, int32_t element_size, int32_t left, int32_t mid, int
6362
while ((i < number_of_elements_1) && (j < number_of_elements_2)) {
6463
bool compare = compareFun(&right_half[j * element_size], &left_half[i * element_size]);
6564
if (compare) {
66-
memcpy(&elements[k * element_size], &left_half[i * element_size], (size_t)element_size);
65+
memcpy(&buffer[k * element_size], &left_half[i * element_size], (size_t)element_size);
6766
++i;
6867
} else {
69-
memcpy(&elements[k * element_size], &right_half[j * element_size], (size_t)element_size);
68+
memcpy(&buffer[k * element_size], &right_half[j * element_size], (size_t)element_size);
7069
++j;
7170
}
7271
++k;
7372
}
7473

7574
while (i < number_of_elements_1) {
76-
memcpy(&elements[k * element_size], &left_half[i * element_size], (size_t)element_size);
75+
memcpy(&buffer[k * element_size], &left_half[i * element_size], (size_t)element_size);
7776
++i;
7877
++k;
7978
}
8079

8180
while (j < number_of_elements_2) {
82-
memcpy(&elements[k * element_size], &right_half[j * element_size], (size_t)element_size);
81+
memcpy(&buffer[k * element_size], &right_half[j * element_size], (size_t)element_size);
8382
++j;
8483
++k;
8584
}
@@ -88,7 +87,6 @@ MergeHalves(byte_t* buffer, int32_t element_size, int32_t left, int32_t mid, int
8887
void
8988
MergeSort_sort(byte_t* buffer, int32_t number_of_elements, int32_t element_size,
9089
bool (*compareFun)(void* first, void* second)) {
91-
byte_t* elements = buffer;
9290
for (int32_t current_size = 1; current_size <= number_of_elements - 1; current_size *= 2) {
9391
for (int32_t left = 0; left < number_of_elements - 1; left += (2 * current_size)) {
9492
int32_t compare_first_1 = left + current_size - 1;
@@ -98,7 +96,7 @@ MergeSort_sort(byte_t* buffer, int32_t number_of_elements, int32_t element_size,
9896
int32_t compare_first_2 = left + (2 * current_size) - 1;
9997
int32_t right = (compare_first_2 < compare_second) ? compare_first_2 : compare_second;
10098

101-
MergeHalves(elements, element_size, left, mid, right, compareFun);
99+
MergeHalves(buffer, element_size, left, mid, right, compareFun);
102100
}
103101
}
104102
}

Src/sort/selection_sort.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,18 @@
3939
void
4040
SelectionSort_sort(byte_t* buffer, int32_t number_of_elements, int32_t element_size,
4141
bool (*compareFun)(void* first, void* second)) {
42-
byte_t* elements = buffer;
4342
int32_t j;
4443

4544
for (int32_t i = 0; i < (number_of_elements - 1); ++i) {
4645
int32_t min_index = i;
4746
for (j = i + 1; j < number_of_elements; ++j) {
48-
if (compareFun(&elements[min_index * element_size], &elements[j * element_size])) {
47+
if (compareFun(&buffer[min_index * element_size], &buffer[j * element_size])) {
4948
min_index = j;
5049
}
5150
}
5251

5352
if (min_index != i) {
54-
Utils_swapElements(&elements[min_index * element_size], &elements[i * element_size], (uint32_t)element_size);
53+
Utils_swapElements(&buffer[min_index * element_size], &buffer[i * element_size], (uint32_t)element_size);
5554
}
5655
}
5756
}

0 commit comments

Comments
 (0)