Skip to content

Commit

Permalink
Modified a few things in the read mes
Browse files Browse the repository at this point in the history
  • Loading branch information
nbro committed Jan 4, 2017
1 parent da6da88 commit 0baeb69
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 111 deletions.
12 changes: 4 additions & 8 deletions TODO.md
@@ -1,6 +1,6 @@
# TODO

_This is a schematic and concise list of the things that I really would like to do (except for the things mentioned in the issues!)_
_This is a schematic and concise list of the things for which I should constantly be prepared to fix or improve or simply things that I found unnecessary to be reported as an issue.


- Improve the _citation of references_ (that I used to implement an algorithm or a data structure) in all modules
Expand All @@ -13,13 +13,9 @@ _This is a schematic and concise list of the things that I really would like to

- Make sure that the doc-strings of the files containing each data structure or algorithm contain an introduction to what's being presented.

- Make sure that I'm using "X is None" or "X is not None" in conditions, when I really mean that X should be respectively None or not None.
In other words, I should not be using "X" or "not X", because "X" could be 0, and could conceptually still be a "valid input".
- Make sure that I'm using `X is None` or `X is not None` in conditions, when I really mean that `X` should be respectively `None` or `not None`.
In other words, I should not be using `X` or `not X`, because `X` could be 0, and could conceptually still be a "valid input".


- When testing, should I just test the interface of what I'm testing or should I also test the properties of the objects?
In a usual case I think we should just test the interface, but since we're dealing with data structures, we want to control everything inside them?!

## TO IMPLEMENT

See the `README.md` files of the subpackages [`algorithms`](ands/algorithms) and [`ds`](ands/ds) for more info.
In a usual case I think we should just test the interface, but since we're dealing with data structures, we want to control everything inside them?!
30 changes: 12 additions & 18 deletions ands/algorithms/README.md
@@ -1,25 +1,19 @@
# Algorithms

## TODO
I would like to include algorithms regarding the following topics:

| Name | State | Comments |
|:----------------------------------:|-------|-------------------------------------------------------------------------------------- |
| Pseudo-Random generator | S | |
| Hamming code | S | |
| CNF to DNF | S | |
| Quadratic Equation | S |
| Cubic Equation | S | [http://www.sosmath.com/algebra/factor/fac11/fac11.html](http://www.sosmath.com/algebra/factor/fac11/fac11.html)
| Quartic Equation | S | [http://mathworld.wolfram.com/QuarticEquation.html](http://mathworld.wolfram.com/QuarticEquation.html)
|RREF and Guassian Elimination |
|Matrix-Matrix multiplication |
| Determinant of matrix |
| Convert linear mapping to matrix map |
| 2-satisfiability |
| Horner |

There are many other algorithms I hope to implement in a near future. You can find those lists in each `README.md` file of each section under [`algorithms`](algorithms). What I would also like to include are some _linear programming_ algorithms.
- Linear algebra (Guassian, RREF, Jacobi, determinants, ...)
- Numerical computing (PDE, ODE, Poisson, Social Networks, Graph Partioning, Conjugate Gradient, Page Rank, Horner...)
- Linear programming
- Artificial intelligence (Swarm intelligence, A<sup>*</sup>, Genetic algorithms, ...)
- Geometrical algorithms (Convex hull, ...)
- Generation of random numbers
- Error correction codes
- CNF, DNF, 2-satisfiability
- Equations (quadratic, cubic and quartic equations formulas ...)
- Heuristics to NP-complete problems


A more exhaustive list of interesting algorithms can be found here:

- [https://en.wikipedia.org/wiki/List_of_algorithms](https://en.wikipedia.org/wiki/List_of_algorithms)
> [https://en.wikipedia.org/wiki/List_of_algorithms](https://en.wikipedia.org/wiki/List_of_algorithms)
4 changes: 2 additions & 2 deletions ands/ds/DSForests.py
Expand Up @@ -33,7 +33,7 @@
## References
- Introduction to algorithms (by C.L.R.S.), chapter 21.3
- Introduction to algorithms, 3rd, by C.L.R.S., chapter 21.3
- [https://en.wikipedia.org/wiki/Disjoint-set_data_structure](https://en.wikipedia.org/wiki/Disjoint-set_data_structure)
Expand Down Expand Up @@ -76,7 +76,7 @@ def __init__(self, x, rank=0):
self.parent = self

# Reference used to help printing all nodes
# belonging to where this node belongs in O(m) time,
# belonging to the set to which this node belongs in O(m) time,
# where m is the size of the mentioned set.
self.next = self

Expand Down
47 changes: 2 additions & 45 deletions ands/ds/README.md
@@ -1,49 +1,6 @@
# Data Structures

## TODO

### PRIORITY
A "good" exhaustive list of data structures which can possibly be implemented can be found here:

- `TSP`

- adding the operations:

- [`longestPrefixOf`](https://github.com/nelson-brochado/algs4/blob/master/src/main/java/edu/princeton/cs/algs4/TST.java)

- [`keysWithPrefix`](https://github.com/nelson-brochado/algs4/blob/master/src/main/java/edu/princeton/cs/algs4/TST.java)

- [`keysThatMatch`](https://github.com/nelson-brochado/algs4/blob/master/src/main/java/edu/princeton/cs/algs4/TST.java)

- Add tests

- `DSForests`
- Add deletion operation
- Add iterative find-set operation
- Check my solutions to first homework of AnD2
- Add [print-set operation](http://stackoverflow.com/questions/23055236/union-find-retrieve-all-members-of-a-set-efficiently)

- `Queue.py`
- Add tests
- Re-implement a MinPriorityQueue
- Add tests for MinPriorityQueue

- `Graph`

- Redesign the graph data structure:

- It should allow the possibility to be represented either as _adjacency list_ or _adjacency matrix_.

- It should also give the possibility to create either directed or undirected graphs.

- It should support the common operations efficiently

- `RBT`

- Augment RBT to support order statistic trees (OS-RANK and OS-SELECT in O(log n))

- Augment RBT to support interval trees

### NON-PRIORITY

- Exhaustive list of data structures which can be possibly implemented (if not already):
- [https://en.wikipedia.org/wiki/List_of_data_structures](https://en.wikipedia.org/wiki/List_of_data_structures)
> [https://en.wikipedia.org/wiki/List_of_data_structures](https://en.wikipedia.org/wiki/List_of_data_structures)
42 changes: 4 additions & 38 deletions tests/README.md
@@ -1,41 +1,7 @@
# Tests

## TODO
A few algorithms and data structures that I would like to test first:

All except the ones mentioned in the next section.

## DONE

### Algorithms

#### Crypo

- caeser cipher
- one time pad

#### ODE

- forward Euler method

#### Sorting

- bubble sort
- heap sort
- insertion sort
- merge sort
- quick sort
- selection sort


### Data Structures

- BST
- BSTNode
- DSForests
- HashTable
- Heap
- MaxHeap
- MinHeap
- MinMaxHeap
- RBT
- Stack
- TST
- Queue
- MinPriorityQueue

0 comments on commit 0baeb69

Please sign in to comment.