Biswanath Dutta (https://sites.google.com/view/bdutta)Jyotima Patel (https://www.linkedin.com/in/jyotima-patel-61220411b)AMV v1.0 was first published on June 16, 2021. This is the revised version dated on February 6, 2023.Metadata vocabularies are used in various domains of study. It provides an in-depth description of the resources. In this work, we develop Algorithm Metadata Vocabulary (AMV), a vocabulary for capturing and storing the metadata about the algorithms (a procedure or a set of rules that is followed step-by-step to solve a problem, especially by a computer). The snag faced by the researchers in the current time is the failure of getting relevant results when searching for algorithms in any search engine. AMV is represented as a semantic model and produced OWL file, which can be directly used by anyone interested to create and publish algorithm metadata as a knowledge graph, or to provide metadata service through SPARQL endpoint. To design the vocabulary, we propose a well-defined methodology, which considers real issues faced by the algorithm users and the practitioners. The evaluation shows a promising result.2021-06-162023-02-06Indian Statistical Institute (https://www.isibang.ac.in/)https://creativecommons.org/publicdomain/zero/1.0/AMV:Algorithm Metadata Vocabularyamvhttps://w3id.org/amvV1.0Example competency questions.
CQ1: What characteristics or properties are common across all algorithms?
CQ2: List all algorithms that compute the solution to problem X along with their types and input.
CQ3: Retrieve an algorithm that solves problem X with its details like best case space complexity, best case time complexity, and the problems related to it.
CQ4: Retrieve all the algorithms X which are expressed in the form of a flowchart.
CQ5: Which Sorting algorithms are derived from the already existing sorting algorithms?http://xmlns.com/foaf/0.1/http://purl.org/dc/terms/http://purl.org/ontology/bibo/http://www.w3.org/2004/02/skos/core#http://www.w3.org/ns/dcat#http://www.wikidata.org/entity/https://schema.org/Information about who access the resource or an indication of its security status.
Access Rights may include information regarding access or restrictions based on privacy, security, or other policies.
Examples of access rights are: Public, Internal, Department (source: https://www.dublincore.org/groups/government/accessRights/)access rightsAn agent who contributes towards the algorithm.contributorThe person who created the algorithm.creatorauthorA related resource that is included either physically or logically in the described resource.(https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/isPartOf)has PartA related resource (e.g., algorithm, program) that is a version, edition, or adaptation of the described resource.has VersionA related resource in which the described resource is physically or logically included.(https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/isPartOf)is Part OfA related resource (e.g., algorithm, program) of which the described resource is a version, edition, or adaptation.is Version OfThe licence under which the algorithm is published.licenseAn entity responsible for making the resource available.publisherA related resource.
For example, a Sorting problem is related to a problem Convex Hull.relationInformation about rights held in and over the resource.rightsA topic of the resource.subjectComments, typically from users.commentAn entity that is a generalization of another. E.g., Distribution sort algorithm is a generalization of Bucket sort.generalization ofhad derivationA primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain.had primary sourcehad revisionAn entity that is specialization of (... is a kind of) another entity and shares all aspects of the later including its own specific aspects. E.g., Bucket sort algorithm is a specialization of (a kind of) Distribution sort.specialization ofA derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.was Derived Fromwas primary source ofA revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation.was revision ofA depiction of some thing.depictionThe depiction property is a relationship between a thing and an Image that depicts it. As such it is an inverse of the depicts relationship.depictsaffiliation ofAn organization that the person is affiliated with. For example, a school/university.affliationIs an algorithm type for an algorithm.algorithm type forThe various function types for analysis of algorithms like logarithmic functions, exponential functions etc.analysis function typeanalysis function type ofAn algorithm for a given problem.available algorithmcomment ofThe type of problem the algorithm solves.Problem that this algorithm or method solves.(https://www.wikidata.org/wiki/Property:P2159)http://www.wikidata.org/prop/direct/P2159computes solution toThe data structure used in an algorithm.data Structure Useddata Structure Used InThe form of expression of an Algorithm.form of expressionThe form of expression of an Algorithm.form Of expression ofThe various applications of the algorithm.has implementationhas message complexityhas metrichas performance metrichas space complexityhas subalgorithma problem that is contingent on or forms a part of another more inclusive problem.has subproblemhas time complexityThe various applications of the algorithm.implementation ofoutput imageThe different type of algorithmic techniques that are used to solve the various existing problems in the most optimized manner.This classification is neither exhaustive nor disjoint but highlights the various ways in which a problem can be addressed.The nature or genre of an algorithm.is a type ofis input image ofis output image ofA pointer to another, functionally similar thing (or multiple things), for example, an algorithm is similar to another algorithm or algorithms, a problem is similar to another problem or problems, etc.is similar toThe loop best suited for the algorithm.loop constructloop construct ofThe mathematical concept used to solve the problem.mathematical propertymathematicalPropertyUsedmessage complexity ofmetric ofoperatingSystemForinput imageperformance metric ofIn which all language the implementation of the algorithm/ problem is available.programming languageaccess rights ofAn algorithm appeared in a publication.appeared Inbranch Ofcontainscontributor ofcreator ofauthor ofhasArticleBranch of the academic discipline.has branchlicense ofpublished inpublisher ofrights ofA topic of the resource for.subject ofruns on Operating Systemspace complexity ofsubalgorithm ofsubproblem oftime complexity ofprogramming language used inDate (often a range) that the resource became or will become available.availableA bibliographic reference for the resource.bibliographic citationThe date of creation of the algorithm.createdA point or period of time associated with an event in the lifecycle of the resource.dateDate of submission of the resource.dateSubmittedA statement that represents something in words. It is the act of describing something. The description can include, for instance, the purpose of a thing, the scope, the area of applications of a thing, the history, etc.An account of the resource.descriptionAn unambiguous reference to the resource within a given context.identifierDate on which the resource was changed.modifiedA name given to the resource (e.g., book, algorithm, research software).titleThe size of a distribution in bytes.byte sizeA Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information.landingPageThe version number of a resource.versionThe first name of a person.first nameA homepage for some thing.homepageThe last name of a person.last nameA personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.personal mailboxThe name for some thing.nameA page or document about this thing.pageThe information on access (i.e modify, read, download) to the algorithm.accessibilityHow close the output will be to a set point.It is the measure of the degree of closeness of a measured or calculated value to its actual value.accuracyacronymAn alternative title of a resource.alternative titleaverage message complexitySpace complexity of an algorithm on average.(https://www.wikidata.org/wiki/Property:P3757)http://www.wikidata.org/prop/direct/P3757average space complexityTime complexity of an algorithm on average. (https://www.wikidata.org/wiki/Property:P3754)http://www.wikidata.org/prop/direct/P3754average time complexitybest case message complexitySpace complexity of an algorithm at least.(https://www.wikidata.org/wiki/Property:P3756)http://www.wikidata.org/prop/direct/P3756best case space complexityTime complexity of an algorithm at least. (https://www.wikidata.org/wiki/Property:P3753)http://www.wikidata.org/prop/direct/P3753best case time complexityLimitations that an algorithm posses.constraintTime taken by CPU while executing the program.(In seconds)cpu time limitThe mathematical formula used for solving the problem.
Mathematical formula representing a theorem or law.http://www.wikidata.org/prop/direct/p2534defining formuladefinitonInput values that require special handling in an algorithm. When using the algorithm at an extreme(maximum or minimum) operating parameters.edge CaseAn excerpt is a contiguous or discontiguous portion, or a passage selected from a larger work or document.excerptFirst time a subject was mentioned in writing.(https://www.wikidata.org/wiki/Property:P1249)http://www.wikidata.org/prop/direct/P1249time of earliest written recordThe algorithm written in such a way that it allows to add new features without changing the existing module.flexibleformal definitionSomething that is operated on by any process or system. An algorithm can have zero or more inputs.inputInput description of an algorithm.input descriptionUnique identifier of the central place where the algorithm is stored.library URIThe number of nested loops in an algorithm.number Of Nested LoopsTotal number of steps that the algorithm takes to solve a certain problem.number Of StepsThe complete dataset is required to start processing.offline algorithmThe data can be feed while processing.online algorithmAn algorithm is optimal means the time complexity in the worst case is a lower bound of the function that describes the time complexity in the worst case of a problem that the algorithm in question solves.optimalOutput after processing the input.outputIt is a measure of quality, higher precision means algorithm returns more relevant results than irrelevant ones.precisionA description providing the problem statement.problem descriptionURL which can be used to download a work.http://www.wikidata.org/prop/direct/p4945download linkRating given on the basis of usefulness of a thing.ratingProvide a description or Link to algorithm, or similar resource "Readme page".read meIs the algorithm readable/understandable to the user.readablepercentage of total relevent result correctly classified by the algorithm.recallworst case message complexitySpace complexity of an algorithm at most.(https://www.wikidata.org/wiki/Property:P3755)http://www.wikidata.org/prop/direct/P3755worst case space complexityTime complexity of an algorithm at most. (https://www.wikidata.org/wiki/Property:P3752)http://www.wikidata.org/prop/direct/P3752worst case time complexityA legal document giving official permission to do something with a Resource.LicenseDocumentA statement about the intellectual property rights (IPR) held in or over a Resource, a legal document giving official permission to do something with a resource, or a statement about access rights.Rights StatementA scholarly academic article, typically published in a journal.Academic articleA written composition in prose, usually nonfiction, on a specific topic, forming an independent part of a book or other publication, as a newspaper or magazine.ArticleA written or printed work of fiction or nonfiction, usually on sheets of paper fastened or bound together within covers.BookA section of a book.Book SectionA chapter of a book.ChapterBook chapterA document that simultaneously contains other documents.Collected DocumentA collection of Documents or Collections.CollectionA document (noun) is a bounded physical representation of body of information designed with the capacity (and usually intent) to communicate. A document may manifest symbolic, diagrammatic or sensory-representational information.The algorithm was published in what kind of literature.Documenta distinct part of a larger document or collected document.Document PartAn edited book.Edited BookA passage selected from a larger work.Excerptsomething that is printed or published and distributed, esp. a given number of a periodical.IssueA periodical of scholarly journal Articles.a periodical dedicated to a particular subject; "he reads the medical journals."JournalA periodical of magazine Articles. A magazine is a publication that is issued periodically, usually bound in a paper cover, and typically contains essays, stories, poems, etc., by many writers, and often photographs and drawings, frequently specializing in a particular subject or area, as hobbies, news, or sports.A periodical publication containing articles and illustrations, often on a particular subject or aimed at a particular readership.MagazineAn unpublished Document, which may also be submitted to a publisher for publication.ManuscriptA document describing the exclusive right granted by a government to an inventor to manufacture, use, or sell an invention for a certain number of years.PatentA group of related documents issued at regular intervals.PeriodicalA compilation of documents published from an event, such as a conference.ProceedingsA document that presents authoritative reference information, such as a dictionary or encylopedia.Reference SourceA document describing an account or statement describing in detail an event, situation, or the like, usually as the result of observation, inquiry, etc..ReportA loose, thematic, collection of Documents, often Books.SeriesA slide in a slideshow.SlideA document created to summarize research findings associated with the completion of an academic degree.ThesisA web page is an online document available (at least initially) on the world wide web. A web page is written first and foremost to appear on the web, as distinct from other online resources such as books, manuscripts or audio documents which use the web primarily as a distribution mechanism alongside other more traditional methods such as print.WebpageA group of Webpages accessible on the Web.WebsiteA comment on an item - for example, a comment on a blog post. The comment's content is expressed via the text property, and its topic via about, properties shared with all CreativeWorks.CommentAcademic field of study or profession.Academic disciplineUnambiguous specification of how to solve a class of problems.(https://www.wikidata.org/wiki/Q8366)Algorithmlanguage designed to communicate instructions to a machine.Programming languageComputer languageA resource that acts or has the power to act. Example of Agents include person and organization.AgentThe Document class represents those things which are, broadly conceived, 'documents'.DocumentThe class Image is a sub-class of Document corresponding to those documents which are images.ImageAn agent belonging to some social institutions such as companies, associations etc, that has a collective goal.OrganizationA human.PersonAn Operating System (OS) is an interface between a computer user and computer hardware. An operating system is a software which performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.Operating system1It is a finite and unambiguous sequence of computer implementable instructions to perform a certain task. This can be a simple process, such as adding two numbers together, or a complex function, such as adding effects to an image. It can be expressed within a finite amount of space and time and in a well-defined formal language.AlgorithmTime complexity corresponds to the amount of time required for an algorithm to run over the provided input in order to generate the required output. Analysis of this helps to predict the resources that an algorithm will take to finish execution.AlgorithmAnalysisFunctionThe different type of algorithmic techniques that are used to solve the various existing problems in the most optimized manner.
This classification is neither exhaustive nor disjoint.Algorithmic TypeCombinatorial optimization problemCombinatorial algorithms are computational procedures which are designed to help solve combinatorial problems. Combinatorial problems are problems involving arrangements of elements from a finite set and selections from a finite set.Combinatorial ProblemComputational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry. Some purely geometrical problems arise out of the study of computational geometric algorithms, and such problems are also considered to be part of computational geometry.Computational Geometry ProblemA data structure is a named location that can be used to store and organize data.Data StructureSolving problems related to data structure i.e a particular way of organizing data in a computer so that it can be used effectively.Data Structures ProblemThe available form of expression/ notation of an algorithm. For example, Flowcharts, pseudocode, control tables, etc. (source: https://en.wikipedia.org/wiki/Algorithm)Form of expressionA Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph.Graph ProblemAny graph problem, which is NP-hard in general graphs, becomes polynomial-time solvable when restricted to graphs in special
classes.Hard ProblemA manifestation of a technical specification or algorithm as a program, software component, or other computer system through computer programming and deployment (source: https://en.wikipedia.org/wiki/Implementation).ImplementationThe type of loop best suited when an algorithm is implemented in any desired programming language. The loop types are for loop, while loop, do-while loop.Loop constructThe mathematical concept used in the algorithm to tackle the problem. This includes set theoty, linear algebra, graph theory etc.Mathematical propertyThe number of messages passed. This is an important measure, primarily applicable in case of distributed algorithms.Message complexityMetricNumerical algorithms are behind designing shapes (e.g. shapes for cars, planes, fonts), computing intensities for displaying graphics, animating moving objects, studying the spread of diseases, modelling the orbit of planets and satellites, supporting search engines such as google, and many more practical problems.Numerical ProblemAn optimization problem is the problem of finding the best solution from all feasible solutions.Optimization problemPerformance metrics (e.g., accuracy, precision, recall) are used to evaluate different algorithms.Performance metricPolynomial time problem means that an algorithm exists for its solution such that the number of steps in the algorithm is bounded by a polynomial function of n, where n corresponds to the length of the input for the problem.Polynomial Time ProblemThe various problems for which an algorithm is written.ProblemLanguage designed to communicate instructions to a machine Programming languages are used in computer programming to implement algorithms.Programming languageSets are collections of symbols whose order is assumed to carry no significance.Set ProblemSpace complexity of an algorithm quantifies the amount of space or memory taken by an algorithm to run as a function of the length of the input.Space complexityStrings are defined by the sequence or arrangement of symbolsString problemIt represents the number of times a statement is executed.Time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the length of the input.
It measures only the executing time of the algorithm in a way that depends only on the algorithm itself and its input.Time complexityA branch of knowledge.Academic field of study or profession.Academic disciplineAcademic fieldSubject areaAn information resource.Information ResourceA small reference book, especially one giving instructions.Manual01-01-1968T00:00:00https://ieeexplore.ieee.org/document/4082128A Formal Basis for the Heuristic Determination of Minimum Cost Pathshttps://doi.org/10.1145/512274.512284Algorithm 232 - HeapSortArne KutznerArrayBacktracking algorithms are based on a depth-first recursive search.2002-01-01T00:00:00A natural sorting algorithm.https://rosettacode.org/wiki/Sorting_algorithms/Bead_sortBead Sort
A set of positive integers.
https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/BeadSort-Figure1.svg/220px-BeadSort-Figure1.svg.pngBead Sort-Lhttps://upload.wikimedia.org/wikipedia/commons/thumb/9/92/BeadSort-Figure2.svg/220px-BeadSort-Figure2.svg.pngBead Sort -Rhttps://en.wikipedia.org/wiki/Bead_sort#ImplementationBead Sort In PythonO(n^2)O(S)O(n)O(S)1958The Bellman-Ford algorithm was first proposed by Alfonso Shimbel (1955), but is instead named after Richard Bellman and Lester Ford Jr., who published it in 1958 and 1956, respectively.The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex to all of the other vertices in a weighted digraph. It is capable of handling graphs in which some of the edge weights are negative numbers.Bellman-Ford Algorithm
Graph and a source vertex src.
Works on negative or positive vertex, in a directed weighted graph.O(N)θ(|V|)θ(|E|)θ(|V||E|)Bertram RaphaelBest bin first is a search algorithm that is designed to efficiently find an approximate solution to the nearest neighbor search problem in very-high-dimensional spaces.Best bin first2008-01-01T00:00:00Efficient sorting algorithm that combines insert and merge operations.Block SortO(1)O(nlog n)O(n)O(nlog n)Branch and bound algorithms are generally used for optimization problems.
As the algorithm progresses, a tree of subproblems is formed.
The original problem is considered the “root problem”. A method is used to construct an upper and lower bound for a given problem. At each node, apply the bounding methods.A brute force algorithm simply tries all possibilities until a satisfactory solution is found.Simple sorting algorithm that works by repeatedly swapping the adjacent elements.Bubble sorthttps://en.wikipedia.org/wiki/Bubble_sort#ImplementationBubble Sort Pseudocode ImplementationO(1)O(n^2)O(n)O(n^2)C. A. R. Hoarehttps://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#PseudocodeCode for Dijkstra's algorithmCristian S. Calude2022-01-01T00:00:00Extract the data of 75 algorithmic problems from Stony Brooks Algorithm Repository in tabular form.https://github.com/jyotimapatel/Algorithmic_Knowledge_Graph/blob/main/scrape.pyData Extraction From Sbr
https://algorist.com/algorist.html
9https://github.com/jyotimapatel/Algorithmic_Knowledge_Graph/blob/main/Problem(75).csvData Extraction ImplementationO(|E|+|V| log |V|)An algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks.Dijkstra's algorithm is a graph search algorithm that solves the single-source shortest path problem for a graph with non-negative edge path costs, producing a shortest path tree.Dijkstra's Algorithm
a directed and weighted graph consisting of 2 or more nodes.
Works on only positive- weight edges in a directed, acyclic graph. The input generally represented by an adjacency matrix or list, and a start node.A divide and conquer algorithm consists of two parts: (i) Divide the problem into smaller subproblems of the same type, and solve these subproblems recursively; (ii) Combine the solutions to the subproblems into a solution to the original proble.A dynamic programming algorithm remembers past results and uses them to find new results.
Dynamic programming is generally used for optimization problems, where multiple solutions exist but need to find the “best” one.Edsger W. DijkstraO(N)O(N)2014-01-01T00:00:00It uses deep neural network layers and converts the input words to corresponding hidden vectors. Each vector represents the current word and the context of the word.Encoding Recurrent Neural NetworkSeries of symbols in some language that need to be translated.The fast multipole method (FMM) is a numerical technique that was developed to speed up the calculation of long-ranged forces in the n-body problem.Fast multipole methodA set of items connected by edges. Each item is called a vertex or node. Formally, a graph is a set of vertices and a binary relation between vertices, adjacency.https://xlinux.nist.gov/dads/HTML/graph.htmlGraphHeapsort is a comparison-based sorting algorithm. Heapsort can be thought of as an improved selection sort: like selection sort, heapsort divides its input into a sorted and an unsorted region, and it iteratively shrinks the unsorted region by extracting the largest element from it and inserting it into the sorted region.https://rosettacode.org/wiki/Sorting_algorithms/HeapsortHeap SortO(n)O(nlog n)O(n)O(nlog n)A graph whose hyperedges connect two or more vertices.A hypergraph G can be defined as a pair (V, E), where V is a set of vertices, and E is a set of hyperedges between the vertices. Each hyperedge is a set of vertices: E ⊆ {{u, v, …} ∈ 2V}. (Hyperedges are undirected.)https://xlinux.nist.gov/dads/HTML/hypergraph.htmlHypergraphIlya SutskeverSorting algorithm that, at each iteration, inserts the current input element into the suitable position between the already sorted elements.https://rosettacode.org/wiki/Sorting_algorithms/Insertion_sortInsertion SortfalseO(1)O(n^2)O(n)O(n^2)J.W.J WilliamsJohn Von NeumannJoshua J. ArulanandhamL.R Ford1945-01-01T00:00:00Merge sort is an efficient, general-purpose, and comparison-based sorting algorithm.https://rosettacode.org/wiki/Sorting_algorithms/Merge_sortMerge SortO(1)O(n)O(nlog n)O(nlog n)O(nlog n)Michael Dinneen01-01-1956T00:00:00https://www.rand.org/pubs/papers/P923.htmlhttps://doi.org/10.1090/qam/102435Network Flow Theory.NIls Nilson01-01-1958T00:00:00https://doi.org/10.1090/qam/102435On a Routing ProblemOriol VinyalsPeter HartPok Son KimQuarterly Applied Mathematics1961-01-01T00:00:00Average-case optimal divide and conquer comparison sorting algorithm.Quicksort is a type of divide and conquer algorithm for sorting an array, based on a partitioning routine.https://rosettacode.org/wiki/Sorting_algorithms/QuicksortQuick Sort1959-01-01T00:00:00O(log n)O(n)O(nlog n)O(nlog n)O(n^^2)Quoc V. LeA randomized algorithm uses a random number at least once during the computation to make a decision.2008-01-01T00:00:00http://itbe.hanyang.ac.kr/ak/papers/tamc2008.pdfRatio based stable in-place mergingA simple recursive algorithm: (i) Solves the base cases directly; (ii) Recurs with a simpler subproblem; (iii) Does some extra work to convert the solution to the simpler subproblem into a solution to the given problem.
It is called “simple” because several of the other algorithm types are inherently recursive. (source: https://www.cis.upenn.edu/~matuszek/cit594-2003/Lectures/35-algorithm-types.ppt)Recursive algorithmSimple recursive algorithmRichard E. BellmanSorting Algorithmhttps://rosettacode.org/wiki/Sorting_algorithms/Selection_sortSelection Sorthttps://en.wikipedia.org/wiki/Selection_sort#ImplementationsSelection Sort Implementation In CO(1)O(n^^2)O(n^^2)O(n^^2)Shortest path problemShortest path problem1981-01-01T00:00:00A comparison-based sorting algorithm.Smooth Sort1981-01-01T00:00:00https://www.cs.utexas.edu/users/EWD/ewd07xx/EWD796a.PDFSmooth Sort: An Alternative For Sorting In SituO(1)O(n)O(nlog n)O(n)SortingTim Peters2002-01-01T00:00:00Timsort is a hybrid stable sorting algorithm, derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data.Tim Sorthttps://gist.github.com/nandajavarma/a3a6b62f34e74ec4c31674934327bbd3Tim Sort Implemented In PythonO(n)O(nlog n)O(nlog n)O(n)The n-body problem is the problem of predicting the individual motions of a group of celestial objects interacting with each other gravitationally.n-body problemA* Algorithm is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency.A* AlgorithmO(|V|)O(|E|)1961-01-01T00:00:00https://doi.org/10.1145/366622.366644Algorithm 64: Quicksort2002-01-01T00:00:00https://web.archive.org/web/20170809110409/https://www.cs.auckland.ac.nz/~jaru003/research/publications/journals/beadsort.pdfBead–Sort: A Natural Sorting Algorithm