+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Longest Common Subsequence algorithm
+More...
+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+
+enum { LEFT
+, UP
+, DIAG
+ }
+
+
+
+void lcslen (const char *s1, const char *s2, int l1, int l2, int **L , int **B)
+ @breif Computes LCS between s1 and s2 using a dynamic-programming approach More...
+
+char * lcsbuild (const char *s1, int l1, int l2, int **L , int **B)
+ @breif Builds the LCS according to B using a traceback approach More...
+
+static void test ()
+ Self-test implementations. More...
+
+int main (int argc, char *argv[])
+ Main function. More...
+
+
+
+
Longest Common Subsequence algorithm
+
From Wikipedia: The longest common subsequence (LCS) problem is the problem of finding the longest subsequence common to all sequences in a set of sequences (often just two sequences).
Author Kurtz
+
+
+
◆ anonymous enum
+
+
+
+
+
◆ lcsbuild()
+
+
+
+
+
+ char * lcsbuild
+ (
+ const char *
+ s1 ,
+
+
+
+
+ int
+ l1 ,
+
+
+
+
+ int
+ l2 ,
+
+
+
+
+ int **
+ L ,
+
+
+
+
+ int **
+ B
+
+
+
+ )
+
+
+
+
+
+
@breif Builds the LCS according to B using a traceback approach
+
Parameters
+
+ 1 s1 first null-terminated string
+ 2 l1 length of s1
+ 3 l2 length of s2
+ 4 L matrix of size l1 x l2
+ 5 B matrix of size l1 x l2
+
+
+
+
Returns lcs longest common subsequence
+
59 {
+
60 int i, j, lcsl;
+
61 char *lcs;
+
+
63
+
64
+
65 lcs = (
char *)
calloc (lcsl+1,
sizeof (
char ));
+
66 if (!lcs) {
+
67 perror("calloc: " );
+
68 return NULL;
+
69 }
+
70
+
71 i = l1, j = l2;
+
72 while (i > 0 && j > 0) {
+
73
+
74 if (B[i][j] == DIAG) {
+
75 lcs[--lcsl] = s1[i-1];
+
76 i = i - 1;
+
77 j = j - 1;
+
78 }
+
79 else if (B[i][j] == LEFT)
+
80 j = j - 1;
+
81 else
+
82 i = i - 1;
+
83 }
+
84 return lcs;
+
85 }
+
#define calloc(elemCount, elemSize)
This macro replace the standard calloc function with calloc_dbg.
Definition: malloc_dbg.h:22
+
+
+
+
+
+
◆ lcslen()
+
+
+
+
+
+ void lcslen
+ (
+ const char *
+ s1 ,
+
+
+
+
+ const char *
+ s2 ,
+
+
+
+
+ int
+ l1 ,
+
+
+
+
+ int
+ l2 ,
+
+
+
+
+ int **
+ L ,
+
+
+
+
+ int **
+ B
+
+
+
+ )
+
+
+
+
+
+
@breif Computes LCS between s1 and s2 using a dynamic-programming approach
+
Parameters
+
+ 1 s1 first null-terminated string
+ 2 s2 second null-terminated string
+ 3 l1 length of s1
+ 4 l2 length of s2
+ 5 L matrix of size l1 x l2
+ 6 B matrix of size l1 x l2
+
+
+
+
Returns void
+
27 {
+
28
+
29
+
30 int i, j;
+
31
+
32
+
33
+
34 for (i = 1; i <= l1; ++i)
+
35 for (j = 1; j <= l2; ++j)
+
36 if (s1[i-1] == s2[j-1]) {
+
37 L [i][j] = 1 +
L [i-1][j-1];
+
38 B[i][j] = DIAG;
+
39 }
+
40 else if (
L [i-1][j] <
L [i][j-1]) {
+
+
42 B[i][j] = LEFT;
+
43 }
+
44 else {
+
+
46 B[i][j] = UP;
+
47 }
+
48 }
+
+
+
+
+
◆ main()
+
+
+
+
+
+ int main
+ (
+ int
+ argc ,
+
+
+
+
+ char *
+ argv []
+
+
+
+ )
+
+
+
+
+
+
Main function.
+
Parameters
+
+ argc commandline argument count (ignored)
+ argv commandline array of arguments (ignored)
+
+
+
+
Returns 0 on exit
+
150 {
+
+
152 return 0;
+
153 }
+
static void test()
Self-test implementations.
Definition: lcs.c:90
+
+
+
+
+
+
+
◆ test()
+
+
+
+
+
+
+
+
+ static void test
+ (
+ void
+ )
+
+
+
+
+
+static
+
+
+
+
+
Self-test implementations.
+
Returns void
+
90 {
+
91
+
92 int **
L , **B, j, l1, l2;
+
93
+
94 char *s1 = "ACGGTGTCGTGCTATGCTGATGCTGACTTATATGCTA" ;
+
95 char *s2 = "CGTTCGGCTATCGTACGTTCTATTCTATGATTTCTAA" ;
+
96 char *lcs;
+
97
+
98 l1 = strlen(s1);
+
99 l2 = strlen(s2);
+
100
+
101 L = (
int **)
calloc (l1+1,
sizeof (
int *));
+
102 B = (
int **)
calloc (l1+1,
sizeof (
int *));
+
103
+
+
105 perror("calloc: " );
+
106 exit(1);
+
107 }
+
108 if (!B) {
+
109 perror("calloc: " );
+
110 exit(1);
+
111 }
+
112 for (j = 0; j <= l1; j++) {
+
113 L [j] = (
int *)
calloc (l2+1,
sizeof (
int ));
+
+
115 perror("calloc: " );
+
116 exit(1);
+
117 }
+
118 B[j] = (
int *)
calloc (l2+1,
sizeof (
int ));
+
+
120 perror("calloc: " );
+
121 exit(1);
+
122 }
+
123 }
+
124
+
+
+
127
+
128 assert(
L [l1][l2] == 27);
+
129 assert(strcmp(lcs, "CGTTCGGCTATGCTTCTACTTATTCTA" ) == 0);
+
130
+
131 printf("S1: %s\tS2: %s\n" , s1, s2);
+
132 printf(
"LCS len:%3d\n" ,
L [l1][l2]);
+
133 printf("LCS: %s\n" , lcs);
+
134
+
+
136 for (j = 0; j <= l1; j++)
+
+
+
+
140
+
141 printf("All tests have successfully passed!\n" );
+
142 }
+
char * lcsbuild(const char *s1, int l1, int l2, int **L, int **B)
@breif Builds the LCS according to B using a traceback approach
Definition: lcs.c:59
+
void lcslen(const char *s1, const char *s2, int l1, int l2, int **L, int **B)
@breif Computes LCS between s1 and s2 using a dynamic-programming approach
Definition: lcs.c:27
+
#define free(ptr)
This macro replace the standard free function with free_dbg.
Definition: malloc_dbg.h:26
+
+
+
+
+
+
+
+
+a Quaternion type represented using a scalar \(w\) or \(q_0\) and a 3D vector \(\left(q_1,q_2,q_3\right)\)
diff --git a/df/d58/md_leetcode__r_e_a_d_m_e.html b/df/d58/md_leetcode__r_e_a_d_m_e.html
index b21b7c88..fbdee01b 100644
--- a/df/d58/md_leetcode__r_e_a_d_m_e.html
+++ b/df/d58/md_leetcode__r_e_a_d_m_e.html
@@ -101,13 +101,13 @@ $(document).ready(function(){initNavTree('df/d58/md_leetcode__r_e_a_d_m_e.html',
We're glad you're interested in adding C LeetCode solutions to the repository.\ Here we'll be explaining how to contribute to LeetCode solutions properly.
-
+
💻 Cloning/setting up the project 💻
First off, you'll need to fork the repository here .\ Then, you'll need to clone the repository to your local machine.
git clone https://github.com/your-username/C.git
After that, you'll need to create a new branch for your solution.
git checkout -b solution/your-solution-name
-
+
📝 Adding a new solution 📝
All LeetCode problems can be found here .\ If you have a solution to any of these problems (which are not being repeated ), that's great! Here are the steps:
@@ -127,12 +127,12 @@ $(document).ready(function(){initNavTree('df/d58/md_leetcode__r_e_a_d_m_e.html',
Doxygen documentation isn't used in LeetCode solutions. Simple/small documentation or comments should be fine.
Don't include libraries/headers such as stdio.h
. Your file should be the solution to the problem only.
-
+
📜 Adding your new solution to the list 📜
Great! You've added your solution. Now, you'll have to add it to leetcode/DIRECTORY.md
.\ Please use numerical order. For example: if the solution's number is 98
, add your solution after 97
, if available.
This is the required format for new solutinos:
| <solution number> | [<solution name>](<leetcode link to problem>) | [C](./src/<filename>.c) | <difficulty> |
-
+ Once you're done with adding a new LeetCode solution, it's time we make a pull request.
diff --git a/dir_8a20dd5bfd5341a725342bf72b6b686f.html b/dir_8a20dd5bfd5341a725342bf72b6b686f.html
new file mode 100644
index 00000000..d7e5283f
--- /dev/null
+++ b/dir_8a20dd5bfd5341a725342bf72b6b686f.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+Algorithms_in_C: dynamic_programming Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Algorithms_in_C 1.0.0
+
+ Set of algorithms implemented in C.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dir_8a20dd5bfd5341a725342bf72b6b686f.js b/dir_8a20dd5bfd5341a725342bf72b6b686f.js
new file mode 100644
index 00000000..c026d0a0
--- /dev/null
+++ b/dir_8a20dd5bfd5341a725342bf72b6b686f.js
@@ -0,0 +1,4 @@
+var dir_8a20dd5bfd5341a725342bf72b6b686f =
+[
+ [ "lcs.c", "db/de1/lcs_8c.html", "db/de1/lcs_8c" ]
+];
\ No newline at end of file
diff --git a/files.html b/files.html
index 3912ded2..3a805c45 100644
--- a/files.html
+++ b/files.html
@@ -160,150 +160,152 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
min_printf.h Implementation of a function similar to printf
test_malloc_dbg.c File used to test the malloc_dbg, calloc_dbg and free_dbg functions
test_min_printf.c File used to test min_printf function
- ► exercism
- ► acronym
- acronym.h
- ► hello_world
- hello_world.h
- ► isogram
- isogram.h
- ► rna_transcription
- rna_transcription.h
- ► word_count
- word_count.h
- ► games
- naval_battle.c naval_battle implementation in C using only the stdio.h for Standard Input and Output
- ► geometry
- geometry_datatypes.h Generic header that provides data types for 3D vectors and quaternions
- quaternions.c Functions related to 3D quaternions and Euler angles
- vectors_3d.c Functions related to 3D vector operations
- ► graphics
- spirograph.c Implementation of Spirograph
- ► greedy_approach
- prim.c Prim's algorithm implementation in C to find the MST of a weighted, connected graph
- ► hash
- hash_adler32.c 32-bit Adler hash algorithm
- hash_crc32.c 32-bit CRC hash algorithm
- hash_djb2.c DJB2 hash algorithm
- hash_sdbm.c SDBM hash algorithm
- hash_xor8.c 8-bit XOR hash algorithm for ASCII characters
- ► leetcode
- ► src
- 6.c Implementation of the ZigZag Conversion Leetcode problem
- ► machine_learning
- adaline_learning.c Adaptive Linear Neuron (ADALINE) implementation
- k_means_clustering.c K Means Clustering Algorithm implemented
- kohonen_som_topology.c Kohonen self organizing map (topological map)
- kohonen_som_trace.c Kohonen self organizing map (data tracing)
- ► math
- cantor_set.c Program to generate Cantor ternary set
- cartesian_to_polar.c Function to convert a Cartesian co-ordinate to polar form
- collatz.c Implementation of Collatz' conjecture
- factorial_large_number.c Compute factorial of arbitrarily large numbers by storing individual digits in a byte
- fibonacci_fast.c Compute \(m^{mth}\) Fibonacci number using the formulae:
- fibonacci_formula.c Finding Fibonacci number of any n
number using [Binet's closed form formula](https://en.wikipedia.org/wiki/Fibonacci_number#Binet's_formula ) compute \(f_{nth}\) Fibonacci number using the binet's formula: Fn = 1√5 * (1+√5 / 2)^n+1 − 1√5 * (1−√5 / 2)^n+1
- palindrome.c Program to identify if a number is palindrome number or not
- prime.c Program to identify if a number is prime number or not
- prime_sieve.c Prime Sieve algorithm implementation
- strong_number.c Strong number is a number whose sum of all digits’ factorial is equal to the number n For example: 145 = 1!(1) + 4!(24) + 5!(120)
- ► misc
- poly_add.c Implementation of [Addition of two polynomials] (https://en.wikipedia.org/wiki/Polynomial#Addition )
- postfix_evaluation.c Postfix evaluation algorithm implementation
- rot13.c ROT13 is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the alphabet
- run_length_encoding.c Encode a null terminated string using Run-length encoding
- sudoku_solver.c Sudoku Solver using recursive implementation of brute-force algorithm
- union_find.c Union find algorithm
- ► numerical_methods
- durand_kerner_roots.c Compute all possible approximate roots of any given polynomial using Durand Kerner algorithm
- lu_decompose.c LU decomposition of a square matrix
- newton_raphson_root.c Find approximate solution for \(f(x) = 0\) using Newton-Raphson interpolation algorithm
- ode_forward_euler.c Solve a multivariable first order ordinary differential equation (ODEs) using forward Euler method
- ode_midpoint_euler.c Solve a multivariable first order ordinary differential equation (ODEs) using midpoint Euler method
- ode_semi_implicit_euler.c Solve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler method
- qr_decompose.h Library functions to compute QR decomposition of a given matrix
- qr_decomposition.c Program to compute the QR decomposition of a given matrix
- qr_eigen_values.c Compute real eigen values and eigen vectors of a symmetric matrix using QR decomposition method
- realtime_stats.c Compute statistics for data entered in rreal-time
- ► process_scheduling_algorithms
- non_preemptive_priority_scheduling.c Non-Preemptive Priority Scheduling is a scheduling algorithm that selects the tasks to execute based on priority
- ► project_euler
- ► problem_1
- sol1.c Problem 1 solution
- sol2.c Problem 1 solution
- sol3.c Problem 1 solution
- sol4.c Problem 1 solution
- ► problem_10
- sol1.c Problem 10 solution
- sol2.c Problem 10 solution
- ► problem_12
- sol1.c Problem 12 solution
- ► problem_13
- sol1.c Problem 13 solution
- ► problem_14
- sol1.c Problem 14 solution
- ► problem_15
- sol1.c Problem 15 solution
- ► problem_16
- sol1.c Problem 16 solution
- ► problem_19
- sol1.c Problem 19 solution
- ► problem_2
- so1.c Problem 2 solution
- ► problem_20
- sol1.c Problem 20 solution
- ► problem_21
- sol1.c Problem 21 solution
- ► problem_22
- sol1.c Problem 22 solution
- ► problem_23
- sol1.c Problem 23 solution
- sol2.c Problem 23 solution - optimization using look-up array
- ► problem_25
- sol1.c Problem 25 solution implemented using arbitrarily large numbers represented as arrays
- ► problem_26
- sol1.c Problem 26 solution
- ► problem_3
- sol1.c Problem 3 solution
- sol2.c Problem 3 solution
- ► problem_4
- sol.c Problem 4 solution
- ► problem_401
- sol1.c Problem 401 solution - Sum of squares of divisors
- ► problem_5
- sol1.c Problem 5 solution - Naive algorithm (slowest)
- sol2.c Problem 5 solution - Naive algorithm (Improved over problem_5/sol1.c )
- sol3.c Problem 5 solution (Fastest)
- ► problem_6
- sol.c Problem 6 solution
- ► problem_7
- sol.c Problem 7 solution
- sol2.c Problem 7 solution
- ► problem_8
- sol1.c Problem 8 solution
- sol2.c Problem 8 solution
- ► problem_9
- sol1.c Problem 9 solution - A naive implementation
- sol2.c Problem 9 solution
- ► searching
- binary_search.c Program to perform binary search of a target value in a given sorted array
- exponential_search.c Exponential Search
- floyd_cycle_detection_algorithm.c Implementation of Floyd's Cycle Detection algorithm
- jump_search.c Implementation of jump search algorithm
- modified_binary_search.c Modified binary search algorithm
- sentinel_linear_search.c Linear Search with Sentinel algorithm implementation
- ► sorting
- bead_sort.c Sorting of array list using bead sort
- bubble_sort.c Bubble sort algorithm implementation
- bubble_sort_2.c Implementation of Bubble sort algorithm
- bubble_sort_recursion.c Bubble sort algorithm implementation using recursion
- heap_sort_2.c Heap Sort implementation
- insertion_sort.c Insertion sort algorithm implementation
- insertion_sort_recursive.c Insertion sort algorithm implementation
- merge_sort.c Implementation of merge sort algorithm
- odd_even_sort.c Odd Even Sort implementation
- selection_sort.c Selection sort algorithm implementation
- selection_sort_recursive.c Selection Sort implementation using recursion
- shell_sort2.c Shell sort algorithm implementation
+ ► dynamic_programming
+ lcs.c Longest Common Subsequence algorithm
+ ► exercism
+ ► acronym
+ acronym.h
+ ► hello_world
+ hello_world.h
+ ► isogram
+ isogram.h
+ ► rna_transcription
+ rna_transcription.h
+ ► word_count
+ word_count.h
+ ► games
+ naval_battle.c naval_battle implementation in C using only the stdio.h for Standard Input and Output
+ ► geometry
+ geometry_datatypes.h Generic header that provides data types for 3D vectors and quaternions
+ quaternions.c Functions related to 3D quaternions and Euler angles
+ vectors_3d.c Functions related to 3D vector operations
+ ► graphics
+ spirograph.c Implementation of Spirograph
+ ► greedy_approach
+ prim.c Prim's algorithm implementation in C to find the MST of a weighted, connected graph
+ ► hash
+ hash_adler32.c 32-bit Adler hash algorithm
+ hash_crc32.c 32-bit CRC hash algorithm
+ hash_djb2.c DJB2 hash algorithm
+ hash_sdbm.c SDBM hash algorithm
+ hash_xor8.c 8-bit XOR hash algorithm for ASCII characters
+ ► leetcode
+ ► src
+ 6.c Implementation of the ZigZag Conversion Leetcode problem
+ ► machine_learning
+ adaline_learning.c Adaptive Linear Neuron (ADALINE) implementation
+ k_means_clustering.c K Means Clustering Algorithm implemented
+ kohonen_som_topology.c Kohonen self organizing map (topological map)
+ kohonen_som_trace.c Kohonen self organizing map (data tracing)
+ ► math
+ cantor_set.c Program to generate Cantor ternary set
+ cartesian_to_polar.c Function to convert a Cartesian co-ordinate to polar form
+ collatz.c Implementation of Collatz' conjecture
+ factorial_large_number.c Compute factorial of arbitrarily large numbers by storing individual digits in a byte
+ fibonacci_fast.c Compute \(m^{mth}\) Fibonacci number using the formulae:
+ fibonacci_formula.c Finding Fibonacci number of any n
number using [Binet's closed form formula](https://en.wikipedia.org/wiki/Fibonacci_number#Binet's_formula ) compute \(f_{nth}\) Fibonacci number using the binet's formula: Fn = 1√5 * (1+√5 / 2)^n+1 − 1√5 * (1−√5 / 2)^n+1
+ palindrome.c Program to identify if a number is palindrome number or not
+ prime.c Program to identify if a number is prime number or not
+ prime_sieve.c Prime Sieve algorithm implementation
+ strong_number.c Strong number is a number whose sum of all digits’ factorial is equal to the number n For example: 145 = 1!(1) + 4!(24) + 5!(120)
+ ► misc
+ poly_add.c Implementation of [Addition of two polynomials] (https://en.wikipedia.org/wiki/Polynomial#Addition )
+ postfix_evaluation.c Postfix evaluation algorithm implementation
+ rot13.c ROT13 is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the alphabet
+ run_length_encoding.c Encode a null terminated string using Run-length encoding
+ sudoku_solver.c Sudoku Solver using recursive implementation of brute-force algorithm
+ union_find.c Union find algorithm
+ ► numerical_methods
+ durand_kerner_roots.c Compute all possible approximate roots of any given polynomial using Durand Kerner algorithm
+ lu_decompose.c LU decomposition of a square matrix
+ newton_raphson_root.c Find approximate solution for \(f(x) = 0\) using Newton-Raphson interpolation algorithm
+ ode_forward_euler.c Solve a multivariable first order ordinary differential equation (ODEs) using forward Euler method
+ ode_midpoint_euler.c Solve a multivariable first order ordinary differential equation (ODEs) using midpoint Euler method
+ ode_semi_implicit_euler.c Solve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler method
+ qr_decompose.h Library functions to compute QR decomposition of a given matrix
+ qr_decomposition.c Program to compute the QR decomposition of a given matrix
+ qr_eigen_values.c Compute real eigen values and eigen vectors of a symmetric matrix using QR decomposition method
+ realtime_stats.c Compute statistics for data entered in rreal-time
+ ► process_scheduling_algorithms
+ non_preemptive_priority_scheduling.c Non-Preemptive Priority Scheduling is a scheduling algorithm that selects the tasks to execute based on priority
+ ► project_euler
+ ► problem_1
+ sol1.c Problem 1 solution
+ sol2.c Problem 1 solution
+ sol3.c Problem 1 solution
+ sol4.c Problem 1 solution
+ ► problem_10
+ sol1.c Problem 10 solution
+ sol2.c Problem 10 solution
+ ► problem_12
+ sol1.c Problem 12 solution
+ ► problem_13
+ sol1.c Problem 13 solution
+ ► problem_14
+ sol1.c Problem 14 solution
+ ► problem_15
+ sol1.c Problem 15 solution
+ ► problem_16
+ sol1.c Problem 16 solution
+ ► problem_19
+ sol1.c Problem 19 solution
+ ► problem_2
+ so1.c Problem 2 solution
+ ► problem_20
+ sol1.c Problem 20 solution
+ ► problem_21
+ sol1.c Problem 21 solution
+ ► problem_22
+ sol1.c Problem 22 solution
+ ► problem_23
+ sol1.c Problem 23 solution
+ sol2.c Problem 23 solution - optimization using look-up array
+ ► problem_25
+ sol1.c Problem 25 solution implemented using arbitrarily large numbers represented as arrays
+ ► problem_26
+ sol1.c Problem 26 solution
+ ► problem_3
+ sol1.c Problem 3 solution
+ sol2.c Problem 3 solution
+ ► problem_4
+ sol.c Problem 4 solution
+ ► problem_401
+ sol1.c Problem 401 solution - Sum of squares of divisors
+ ► problem_5
+ sol1.c Problem 5 solution - Naive algorithm (slowest)
+ sol2.c Problem 5 solution - Naive algorithm (Improved over problem_5/sol1.c )
+ sol3.c Problem 5 solution (Fastest)
+ ► problem_6
+ sol.c Problem 6 solution
+ ► problem_7
+ sol.c Problem 7 solution
+ sol2.c Problem 7 solution
+ ► problem_8
+ sol1.c Problem 8 solution
+ sol2.c Problem 8 solution
+ ► problem_9
+ sol1.c Problem 9 solution - A naive implementation
+ sol2.c Problem 9 solution
+ ► searching
+ binary_search.c Program to perform binary search of a target value in a given sorted array
+ exponential_search.c Exponential Search
+ floyd_cycle_detection_algorithm.c Implementation of Floyd's Cycle Detection algorithm
+ jump_search.c Implementation of jump search algorithm
+ modified_binary_search.c Modified binary search algorithm
+ sentinel_linear_search.c Linear Search with Sentinel algorithm implementation
+ ► sorting
+ bead_sort.c Sorting of array list using bead sort
+ bubble_sort.c Bubble sort algorithm implementation
+ bubble_sort_2.c Implementation of Bubble sort algorithm
+ bubble_sort_recursion.c Bubble sort algorithm implementation using recursion
+ heap_sort_2.c Heap Sort implementation
+ insertion_sort.c Insertion sort algorithm implementation
+ insertion_sort_recursive.c Insertion sort algorithm implementation
+ merge_sort.c Implementation of merge sort algorithm
+ odd_even_sort.c Odd Even Sort implementation
+ selection_sort.c Selection sort algorithm implementation
+ selection_sort_recursive.c Selection Sort implementation using recursion
+ shell_sort2.c Shell sort algorithm implementation