Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions SieveOfEratosthenes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Sieve of Eratosthenes is an algorithm that finds all the primes upto a certain number.

import java.util.Scanner;

class SieveOfEratosthenes {
public static void main(String args[]) {
int n;
System.out.print("Enter a number: ");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
boolean composites[] = new boolean[n + 1];

for(int i = 2; i * i <= n; i++) {
if(!composites[i])
for(int j = i * i; j <= n; j+=i)
composites[j] = true;
}

System.out.println("Primes:");
for(int i = 2; i <= n; i++)
if(!composites[i])
System.out.println(i);
}
}
128 changes: 45 additions & 83 deletions topologicalSorting.java
Original file line number Diff line number Diff line change
@@ -1,91 +1,53 @@
// A Java program to print topological
// sorting of a DAG
import java.io.*;
import java.util.*;

// This class represents a directed graph
// using adjacency list representation
class Graph {
// No. of vertices
private int V;

// Adjacency List as ArrayList of ArrayList's
private ArrayList<ArrayList<Integer> > adj;

// Constructor
Graph(int v)
{
V = v;
adj = new ArrayList<ArrayList<Integer> >(v);
for (int i = 0; i < v; ++i)
adj.add(new ArrayList<Integer>());
class Graph{
int v;
LinkedList<Integer> adj[];
@SuppressWarnings("unchecked")
Graph(int v){
this.v=v;
adj=new LinkedList[v];
for(int i=0;i<v;i++)
adj[i]=new LinkedList<>();
}
}
class TopologicalSorting{
public static void addEdge(Graph g,int u,int v){
g.adj[u].add(v);
}

// Function to add an edge into the graph
void addEdge(int v, int w) { adj.get(v).add(w); }

// A recursive function used by topologicalSort
void topologicalSortUtil(int v, boolean visited[],
Stack<Integer> stack)
public static void toposortutil(Graph g,int node,boolean visit[],Stack st)
{
// Mark the current node as visited.
visited[v] = true;
Integer i;

// Recur for all the vertices adjacent
// to thisvertex
Iterator<Integer> it = adj.get(v).iterator();
while (it.hasNext()) {
i = it.next();
if (!visited[i])
topologicalSortUtil(i, visited, stack);
visit[node]=true;
int i;
Iterator<Integer>it=g.adj[node].iterator();
while(it.hasNext())
{
i=it.next();
System.out.println(i);
if(!visit[i])
toposortutil(g,i,visit,st);
}

// Push current vertex to stack
// which stores result
stack.push(new Integer(v));
System.out.println("node"+node);
st.push(node);
}

// The function to do Topological Sort.
// It uses recursive topologicalSortUtil()
void topologicalSort()
{
Stack<Integer> stack = new Stack<Integer>();

// Mark all the vertices as not visited
boolean visited[] = new boolean[V];
for (int i = 0; i < V; i++)
visited[i] = false;

// Call the recursive helper
// function to store
// Topological Sort starting
// from all vertices one by one
for (int i = 0; i < V; i++)
if (visited[i] == false)
topologicalSortUtil(i, visited, stack);

// Print contents of stack
while (stack.empty() == false)
System.out.print(stack.pop() + " ");
public static void toposort(Graph g){
Stack st=new Stack();
boolean visit[]=new boolean[g.v];
for(int i=0;i<g.v;i++)
if(visit[i]==false)
toposortutil(g,i,visit,st);
while(st.empty()==false)
System.out.println(st.pop()+" ");
}

// Driver code
public static void main(String args[])
{
// Create a graph given in the above diagram
Graph g = new Graph(6);
g.addEdge(5, 2);
g.addEdge(5, 0);
g.addEdge(4, 0);
g.addEdge(4, 1);
g.addEdge(2, 3);
g.addEdge(3, 1);

System.out.println("Following is a Topological "
+ "sort of the given graph");
// Function Call
g.topologicalSort();
public static void main(String[] args){
Graph g = new Graph(6);
TopologicalSorting tp=new TopologicalSorting();
tp.addEdge(g,5, 2);
tp.addEdge(g,5, 0);
tp.addEdge(g,4, 0);
tp.addEdge(g,4, 1);
tp.addEdge(g,2, 3);
tp.addEdge(g,3, 1);
tp.toposort(g);
}
}
// This code is contributed by Aakash Hasija