Академический Документы
Профессиональный Документы
Культура Документы
AshishKedia'sanswertoWhatalgorithmsshouldIknowtobecomeagoodprogrammer?Quora
AskorSearchQuora
AskQuestion
Read
Answer
Notifications
Raushan
WhatalgorithmsshouldIknowtobecomea
goodprogrammer?
imgoodatbasicsofprogrammingandmyproblemisthaticannotsolvealotofproblems
efficiently.pleaselistallpossiblemustknowalgorithmsthataprogrammershouldknow.
AshishKedia,CSundergrad.Programmingfor8yearsandcounting.
UpdatedJun21UpvotedbyJeffNelson,InventedChromebook,#Xoogler,PNVamshi,and
ArihantBinaykia
Iamassumingyouknowatleastoneprogramminglanguageandtheconceptofobject/
pointers.Iwillmentionalgorithmsanddatastructuresinincreasingorderofdifficulty.
FirststartwithLineardatastructuresandalgorithms.
Arrays
LinkedList
Stack
Queues
Thenmovetobasicalgorithms:
SortingMergeSort,InsertionSort,QuickSort,Numberofinversions
MatrixMultiplication(justknowthealgoifnotimplementit)
PrimeSieving
ModularMathincludingmultiplicationanddivision
EuclideanAlgorithmforGCD,ModularInverse,FastExponentiation
Fibonaccinumberwithmatrixmultiplication
Probabilitydistributionandexpectedvalue
StatsMean,Median,Variance,Bayestheorem
Theonecanlearnsomepopularalgorithmictechniques:
DivideandConquerBinarySearch,MaximumSubarray
GreedyAlgorithmsActivitySelection,Huffmanencoding
DynamicProgrammingMatrixChainMultiplication,Knapsack,
LinearProgrammingVariableMaximisation,Lineartimesorting
StringAlgorithmsManacher,LCS,EditDistance
Thencomessometypicalnonlineardatastructures:
TreesBinaryTree,GeneralTree,LowestCommonAncestor
BinarySearchTreeInorderTraversal,Levelordertraversal,findingkthlargest
element,diameter,depth,numberofnodes,etc.
HeapsArrayImplementation,Heapify,HeapSort
UnionFind
HashTableLinearProbing,Openaddressing,Collisionavoidance
ThenyoucanlearnaboutGraphs:
AdjacencyList,AdjacencyMatrix,WeightedEdgeGraphs
BasicTraversalalgosBreadthFirstSearch,DepthFirstSearch,etc
Upvote
2.5k
Downvote Comments 16+
https://www.quora.com/WhatalgorithmsshouldIknowtobecomeagoodprogrammer/answer/AshishKedia
1/3
23/09/2016
AshishKedia'sanswertoWhatalgorithmsshouldIknowtobecomeagoodprogrammer?Quora
ShortestPathFindingAlgorithmDijkstra,FloydWarshal,BellmanFord
AskQuestion
AskorSearchQuora
Read
Answer
MinimumSpanningTreeKruskal'sAlgo,Prim'sAlgo
Notifications
Raushan
Bythistimeyouarealreadyprettygoodwithprogramming.Youwilldobetterthanmost
ofundergradCSstudents.Ifyouwanttolearnmoreanddelvedeepreadmore.
AdvanceTreeandGraph:
BalancedTreesAVL,RedBlack
HeavyLightDecomposition,B+Trees,QuadTree
AdvanceGraphMinCut,MaxFlow
MaximumMatchingHall'sMarriage
HamiltonianCycle
EdgeGraphs/LineGraphs
StronglyConnectedComponents
DominantSubGraph,VertexCover,TravellingSalesmanApproxalgos
AdvanceStringAlgorithms:
KnuthMorrisPrattAlgorithm
RabinKarpAlgorithm
TriesandCompressedTries
PrefixTrees,SuffixTrees,SuffixAutomationUkkonenAlgorithm
AdvanceMath:
FastFourierTranformation
PrimalityTesting
ComputationalGeometryClosestpointpair,Voronoidiagram,ConvexHull
GeneralAdvancetopics:
Iteratingthroughallcombination/permutation
Bitmanipulation
75.1kViewsViewUpvotes
View16OtherAnswerstothisQuestion
AbouttheAuthor
AshishKedia
WebSolutionsEngineeratGoogle,Hyderabad,exInternatGoogleSF
12FollowersYouKnow
SumitVikrant,ShantanuGawande,BhuviJain,NareshRamesh,and8others
Google(company)
Intern2015,WebSolutionsEngineeratGoogle
NationalInstituteofTechnologyKarnataka(NITKSurathkal)
InformationTechnologyUndergrad@NITK,Batchof2016
Hyderabad,India
10.8manswerviews
544.7kthismonth
TopWriter
2016 2.5k
Upvote
https://www.quora.com/WhatalgorithmsshouldIknowtobecomeagoodprogrammer/answer/AshishKedia
2/3