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 |
► client_server | |
client.c | Client side implementation of Server-Client system |
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 | |
doubly_linked_list.c | Implementation of Doubly linked list |
► list | |
list.h | |
► queue | |
include.h | |
► stack | |
► stack_linked_list | |
stack.h | |
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 |
► 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) |
► misc | |
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 |
poly_add.c | Implementation of [Addition of two polynomials] (https://en.wikipedia.org/wiki/Polynomial#Addition) |
postfix_evaluation.c | Postfix evaluation algorithm implementation |
prime.c | Program to identify if a number is prime number or not |
prime_seive.c | Prime Seive 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 |
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) |
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 |