Code Monkey home page Code Monkey logo

calgorithms's Introduction

Algorithms Reference Implementation

Build Status Software License

This project provides a set of algorithms implemented in c/c++ programming languages which acts as reference implementation for fun (and could be for profit). The intention is to illustrate algorithms and data structures with a strong focus on clarity and clean design.

The prime motivation is to illustrate implementation of algorithms in c/c++ programming languages to enable better understanding and language implementation of the same. Optimization is not the prime focus, so whenever required clarity will override optimization within the implementation.

Software Dependencies

This framework supports Gnu/Linux operating system, but with little change it can be made to build on any of the POSIX compliant operating system. The following depencies are required to use this project; namely

Development Environment Setup

Although the installation for various GNU/Linux distributions differ but the dependencies are easily available on any one of them.

Ubuntu or Debian

The following commands were tested on Ubuntu 14.04 but things should be similar (if not same) on other releases and Debian.

The following commands needs to be as a system administrator or with sudo (as shown below) so that the relavent packages are installed in the system.

If your system is not updated then probably it is a good idea to do that before installing anything else.

sudo apt-get update

In case you prefer the GNU GCC compler then install g++

sudo apt-get install -y g++

Alternatively, you can install the clang compiler as well

sudo apt-get install -y clang-3.5

CentOS / Fedora / Redhat

The following commands were tested on Centos 7 but things should be similar (if not same) on other releases and Fedora or Redhat.

If your system is not updated then probably it is a good idea to do that before installing anything else.

sudo yum update

In case you prefer the GNU GCC compler then install g++

sudo yum install -y gcc-c++

Alternatively, you can install the clang compiler as well

sudo yum install -y clang

The versions gcc (g++) and clang which are installed in your (rpm based) operating needs to meet the previously mentioned criteria. At the time of this writing CentOS 7, Fedora 23, RHEL 7 are the latest releases and works well. Anything earlier may not work for you unless you are willing to get under the hood and build things on your own.

Archlinux

If your system is not updated then probably it is a good idea to do that before installing anything else.

sudo pacman -Syu

In case you prefer the GNU GCC compler then install g++

sudo pacman -Sy gcc-multilib

Alternatively, you can install the clang compiler as well

sudo pacman -Sy clang

Motivation

Building

After you are done setting up the development environment the build is pretty straight-forward (see below).

git clone https://github.com/neeraj9/algorithms
cd algorithms 
make

Algorithms

This project has the following algoritms:

  • graph - Algoritms related to graphs.

Graph

Algorithm Description
cpp11-adj-list-bfs C++11 implementation of Breadth First Search with graph represented as an adjencency list.

Authors

calgorithms's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.