Skip to content

Commit 7a04d57

Browse files
committed
renaming
1 parent 0662333 commit 7a04d57

File tree

6 files changed

+231
-0
lines changed

6 files changed

+231
-0
lines changed

c++/sorting_algorithms/quicksort.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include "utils.cpp"
2+
3+
4+
int partition(int arr[], int low, int high) {
5+
int pivot = arr[high];
6+
int l = (low - 1);
7+
8+
for (int pos = low; pos < high; pos++) {
9+
if (arr[pos] <= pivot) {
10+
l++;
11+
swap(&arr[l], &arr[pos]);
12+
}
13+
}
14+
15+
swap(&arr[l+1], &arr[high]);
16+
17+
return (l + 1);
18+
}
19+
20+
void quicksort(int arr[], int low, int high) {
21+
if (low < high) {
22+
int pivot = partition(arr, low, high);
23+
24+
quicksort(arr, pivot+1, high);
25+
quicksort(arr, low, high-1);
26+
}
27+
}
28+
29+
30+
31+
32+
int main()
33+
{
34+
print_array(arr, LENGTH);
35+
36+
quicksort(arr, 0, LENGTH-1);
37+
print_array(arr, LENGTH);
38+
39+
cout << (equal_arrays(arr, sol, LENGTH) ? "true" : "false");
40+
41+
return 0;
42+
}

c++/sorting_algorithms/utils.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <iostream>
2+
using namespace std;
3+
4+
#define LENGTH 68
5+
6+
7+
void swap(int *x, int *y) {
8+
int temp = *x;
9+
*x = *y;
10+
*y = temp;
11+
}
12+
13+
void print_array(int arr[], int size) {
14+
for (int i = 0; i < size; i++) {
15+
cout << arr[i] << " ";
16+
}
17+
cout << "end" << endl;
18+
}
19+
20+
bool equal_arrays(int arr[], int arr2[], int size) {
21+
for (int i = 0; i < size; i++) {
22+
if (arr[i] != arr2[i]) return false;
23+
}
24+
25+
return true;
26+
}
27+
28+
29+
int arr[] = {21561, 9, -124714, 0, -1247, 24171, 21742174, 47421, -7285, 261, 2, 521, 10, 3, 216, 7, 6216, 2, 62161, 7, 68, 9, -83148, -1235, 1, -10, 166, 389, 13, 63, 19361, 32, 7317, 8539, 32732, 24151621, -2, 7327, 2157105, 1235, 852, 121, 21, -100, -124, 23, 742, 7654, 87, 123456, 6543, 21261, 48245, 16, 8765, 987654321, 247, 125, 8421, 942, 532, 913, 126, 274, 135, 100000, 2162, 37272};
30+
int sol[] = {-124714, -83148, -7285, -1247, -1235, -124, -100, -10, -2, 0, 1, 2, 2, 3, 7, 7, 9, 9, 10, 13, 16, 21, 23, 32, 63, 68, 87, 121, 125, 126, 135, 166, 216, 247, 261, 274, 389, 521, 532, 742, 852, 913, 942, 1235, 2162, 6216, 6543, 7317, 7327, 7654, 8421, 8539, 8765, 19361, 21261, 21561, 24171, 32732, 37272, 47421, 48245, 62161, 100000, 123456, 2157105, 21742174, 24151621, 987654321};
31+
32+

c/sorting_algorithms/bubble_sort.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include "utils.c"
2+
3+
4+
void bubble_sort(int arr[], int size) {
5+
for (int j = 0; j < size; j++) {
6+
for (int i = 0; i < size-j-1; i++) {
7+
if (arr[i] > arr[i+1]) {
8+
swap(&arr[i], &arr[i+1]);
9+
}
10+
}
11+
}
12+
}
13+
14+
15+
16+
17+
int main()
18+
{
19+
print_array(arr, LENGTH);
20+
bubble_sort(arr, LENGTH);
21+
22+
print_array(arr, LENGTH);
23+
printf("%s", equal_arrays(arr, sol, LENGTH) ? "true" : "false");
24+
25+
return 0;
26+
}

c/sorting_algorithms/merge_sort.c

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#include "utils.c"
2+
3+
4+
void merge(int arr[], int low, int middle, int high) {
5+
int l = low;
6+
int h = middle;
7+
int index = 0;
8+
9+
int result[LENGTH] = {0};
10+
11+
while (l < middle && h < high) {
12+
if (arr[l] > arr[h]) {
13+
result[index] = arr[h];
14+
h++;
15+
} else {
16+
result[index] = arr[l];
17+
l++;
18+
}
19+
index++;
20+
}
21+
22+
while (l < middle) {
23+
result[index] = arr[l];
24+
index++;
25+
l++;
26+
}
27+
28+
while (h < high) {
29+
result[index] = arr[h];
30+
index++;
31+
h++;
32+
}
33+
34+
for (int i = low; i < high; i++) {
35+
arr[i] = result[i-low];
36+
}
37+
}
38+
39+
void merge_sort(int arr[], int low, int high) {
40+
int middle = (int) (low + high) / 2;
41+
42+
if (low == middle) return;
43+
44+
merge_sort(arr, middle, high);
45+
merge_sort(arr, low, middle);
46+
47+
merge(arr, low, middle, high);
48+
}
49+
50+
int main()
51+
{
52+
print_array(arr, LENGTH);
53+
merge_sort(arr, 0, LENGTH);
54+
55+
print_array(arr, LENGTH);
56+
printf("%s", equal_arrays(arr, sol, LENGTH) ? "true" : "false");
57+
58+
return 0;
59+
}

c/sorting_algorithms/quicksort.c

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include "utils.c"
2+
3+
4+
int partition(int arr[], int low, int high) {
5+
int pivot = arr[high];
6+
int l = (low - 1);
7+
8+
for (int pos = low; pos < high; pos++) {
9+
if (arr[pos] <= pivot) {
10+
l++;
11+
swap(&arr[l], &arr[pos]);
12+
}
13+
}
14+
15+
swap(&arr[l+1], &arr[high]);
16+
17+
return (l + 1);
18+
}
19+
20+
void quicksort(int arr[], int low, int high) {
21+
if (low < high) {
22+
int pivot = partition(arr, low, high);
23+
24+
quicksort(arr, low, pivot-1);
25+
quicksort(arr, pivot+1, high);
26+
}
27+
}
28+
29+
30+
31+
32+
int main()
33+
{
34+
print_array(arr, LENGTH);
35+
quicksort(arr, 0, LENGTH-1);
36+
37+
print_array(arr, LENGTH);
38+
printf("%s", equal_arrays(arr, sol, LENGTH) ? "true" : "false");
39+
40+
return 0;
41+
}

c/sorting_algorithms/utils.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <stdio.h>
2+
#include <stdbool.h>
3+
4+
#define LENGTH 68
5+
6+
7+
void swap(int *x, int *y) {
8+
int temp = *x;
9+
*x = *y;
10+
*y = temp;
11+
}
12+
13+
void print_array(int arr[], int size) {
14+
for (int i = 0; i < size; i++) {
15+
printf("%d ", arr[i]);
16+
}
17+
printf("end\n");
18+
}
19+
20+
bool equal_arrays(int arr[], int arr2[], int size) {
21+
for (int i = 0; i < size; i++) {
22+
if (arr[i] != arr2[i]) return false;
23+
}
24+
25+
return true;
26+
}
27+
28+
29+
int sol[] = {-124714, -83148, -7285, -1247, -1235, -124, -100, -10, -2, 0, 1, 2, 2, 3, 7, 7, 9, 9, 10, 13, 16, 21, 23, 32, 63, 68, 87, 121, 125, 126, 135, 166, 216, 247, 261, 274, 389, 521, 532, 742, 852, 913, 942, 1235, 2162, 6216, 6543, 7317, 7327, 7654, 8421, 8539, 8765, 19361, 21261, 21561, 24171, 32732, 37272, 47421, 48245, 62161, 100000, 123456, 2157105, 21742174, 24151621, 987654321};
30+
int arr[] = {21561, 9, -124714, 0, -1247, 24171, 21742174, 47421, -7285, 261, 2, 521, 10, 3, 216, 7, 6216, 2, 62161, 7, 68, 9, -83148, -1235, 1, -10, 166, 389, 13, 63, 19361, 32, 7317, 8539, 32732, 24151621, -2, 7327, 2157105, 1235, 852, 121, 21, -100, -124, 23, 742, 7654, 87, 123456, 6543, 21261, 48245, 16, 8765, 987654321, 247, 125, 8421, 942, 532, 913, 126, 274, 135, 100000, 2162, 37272};
31+

0 commit comments

Comments
 (0)