This repo contains a bunch of C Programs, which are created from scratch.There are different categories like OS_Programs which contains the programs related to Operating System.
In this section i have created the programs for the problems which i studied during the subject DESIGN AND ANALYSIS OF ALGORITHMS, OPERATING SYSTEM CONCEPTS and other.The new design techinques were very helpful for the future projects.
The knapsack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible.
So there are different methods for solving this problems like Greedy Method, Dynamic Method etc.This program is based on the Greedy Method.
In mathematics, and more specifically in graph theory, a Graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense "related". The objects correspond to mathematical abstractions called vertices (also called nodes or points) and each of the related pairs of vertices is called an edge (also called link or line).
I think graph theory is super important conecpt for Computer science students.Especially algorithms like Finding Shortest path, Graph coloring etc.
I had studied many of the graph problems but here i have implemented only one and that is Kruskal's algorithm to find minimum spanning tree.
Here i took a diiferent approch to solve this.It's main condition is that if a cycle is formed don't include that edge, but i coudn't able to satisfy this condition using some math, so instead i solved it like we humans do.This program checks each edge whether it forms a cycle with the previous edges or not(that's why it's cmputational time is more) but it's not fully solved, in some problems an extra edge is added or removed from the output, but working on it.
To know more about Kruskal's algorithm Click Here 🔗🔗.
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also include accounting software for cost allocation of processor time, mass storage, printing, and other resources.
In computing, scheduling is the action of assigning resources to perform tasks. The resources may be processors, network links or expansion cards. The tasks may be threads, processes or data flows.
Scheduling algorithms play vital role in your computers, i had studied algorithms such as First Come First Serve (FCFS), Shortest Job First (SJF), Priority Scheduling, and Round Robin and i have implemented all of these in a single program.
A pattern is a regularity in the world, in human-made design, or in abstract ideas. As such, the elements of a pattern repeat in a predictable manner.I know this does not define correctly what this category is actually, let's say it contains programs to print different patterns.
This is a simple program which just converts the normal text into ascii text, i wanted to make it dynamic like those online ascii art generators but i think it will take a lot of work though.
I came to know about this in hackerrank.com it was one of the challenge, and yes it was hard took me around 2 hours to solve it but the output is worth it.
This program was a challenge program in google dev fest but i couldn't able to solve it there, but after coming home looked at the pattern then i saw that this problem was a piece of cake, but yeah i failed to solve it there.





