Algorithms_in_C 1.0.0
Set of algorithms implemented in C.
|
► audio | |
alaw.c | A-law algorithm for encoding and decoding (16bit pcm <=> a-law). This is the implementation of G.711 in C |
► cipher | |
affine.c | An affine cipher is a letter substitution cipher that uses a linear transformation to substitute letters in a message |
rot13.c | ROT13 is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the alphabet |
► client_server | |
bool.h | |
client.c | Client side implementation of Server-Client system |
fork.h | |
remote_command_exec_udp_client.c | Client-side implementation of [Remote Command Execution Using UDP](https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/) |
remote_command_exec_udp_server.c | Server-side implementation of [Remote Command Execution Using UDP](https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/) |
server.c | Server side implementation of Server-Client system |
tcp_full_duplex_client.c | Client-side implementation of TCP Full Duplex Communication |
tcp_full_duplex_server.c | Server-side implementation of TCP Full Duplex Communication |
tcp_half_duplex_client.c | Client-side implementation of TCP Half Duplex Communication |
tcp_half_duplex_server.c | Server-side implementation of TCP Half Duplex Communication |
udp_client.c | Client side implementation of UDP client-server model |
udp_server.c | Server side implementation of UDP client-server model |
► conversions | |
c_atoi_str_to_integer.c | Recoding the original atoi function in stdlib.h |
celsius_to_fahrenheit.c | Conversion of temperature in degrees from Celsius to Fahrenheit |
decimal_to_any_base.c | Decimal to any-base is a C function wich convert positive decimal integer to any positive ascii base with the base's alphabet given in input and return it in a dynamically allocated string(recursive way) |
decimal_to_binary_recursion.c | Convert decimal to binary using recursion algorithm |
hexadecimal_to_octal2.c | Convert hexadecimal number to octal number (with decimal intermediary) |
infix_to_postfix.c | Infix to Postfix Expression Conversion |
infix_to_postfix2.c | Infix to Postfix converter implementation |
int_to_string.c | Convert a positive integer to string (non-standard function) representation |
octal_to_hexadecimal.c | Octal to hexadecimal conversion by scanning user input |
roman_numerals_to_decimal.c | Conversion of roman numerals to decimal |
► data_structures | |
► array | |
carray.h | |
► binary_trees | |
binary_search_tree.c | A basic unbalanced binary search tree implementation in C |
segment_tree.c | Segment trees with only point updates |
threaded_binary_trees.c | This file is a simple implementation of a Threaded Binary Tree |
words_alphabetical.c | Printing the words contained in a file named file.txt in alphabetical order and also their frequencies in to another file "wordcount.txt" |
► dictionary | |
dict.h | |
► dynamic_array | |
dynamic_array.h | |
► graphs | |
graph.h | |
queue.h | |
► hash_set | |
hash_set.h | |
► linked_list | |
circular_doubly_linked_list.c | |
doubly_linked_list.c | Implementation of Doubly linked list |
► list | |
list.h | |
► queue | |
include.h | |
► stack | |
► stack_linked_list | |
stack.h | |
dynamic_stack.c | Dynamic Stack, just like Dynamic Array, is a stack data structure whose the length or capacity (maximum number of elements that can be stored) increases or decreases in real time based on the operations (like insertion or deletion) performed on it |
stack.h | |
vector.c | This is a vector implemenation in C |
► developer_tools | |
malloc_dbg.c | This file contains malloc_dbg, calloc_dbg, free_dbg and printLeaks implementations |
malloc_dbg.h | Header file that contains macros used to replace malloc/calloc and free |
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 |
► dynamic_programming | |
lcs.c | Longest Common Subsequence algorithm |
matrix_chain_order.c | Matrix Chain Order |
► exercism | |
► acronym | |
acronym.h | |
► hello_world | |
hello_world.h | |
► isogram | |
isogram.h | |
► rna_transcription | |
rna_transcription.h | |
► word_count | |
word_count.h | |
► games | |
hangman.c | C implementation of Hangman Game |
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_blake2b.c | Blake2b cryptographic hash function |
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 |
euclidean_algorithm_extended.c | Program to perform the extended Euclidean algorithm |
factorial_large_number.c | Compute factorial of arbitrarily large numbers by storing individual digits in a byte |
fibonacci.c | Program to print the nth term of the Fibonacci series |
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 | |
hamming_distance.c | Hamming distance algorithm implementation |
mcnaughton_yamada_thompson.c | McNaughton–Yamada–Thompson algorithm |
poly_add.c | Implementation of [Addition of two polynomials] (https://en.wikipedia.org/wiki/Polynomial#Addition) |
postfix_evaluation.c | Postfix evaluation algorithm implementation |
run_length_encoding.c | Encode a null terminated string using Run-length encoding |
shunting_yard.c | Shunting Yard Algorithm |
sudoku_solver.c | Sudoku Solver using recursive implementation of brute-force algorithm |
union_find.c | Union find algorithm |
► numerical_methods | |
bisection_method.c | In mathematics, the Bisection Method is a root-finding method that applies to any continuous function for which one knows two values with opposite signs |
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 |
secant_method.c | Secant Method implementation |
► 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 |
patience_sort.c | Patience Sort |
selection_sort.c | Selection sort algorithm implementation |
selection_sort_recursive.c | Selection Sort implementation using recursion |
shell_sort2.c | Shell sort algorithm implementation |