Division of Large Numbers
Working with large numbers (including extremely precise ones) is possible, although compilers don't acknowledge the existence of such a class/type. Writing such a type/class may seem to be a hard task; however, if we take it one step at a time, it turns out that there are many advanced techniques that make our lives easier. This situation is true with the procedure of division, on which we will focus in this article.
Branch and Bound Algorithm Technique
Branch and bound is another algorithm technique that we are going to present in our multi-part article series covering algorithm design patterns and techniques. B amp;B, as it is often abbreviated, is one of the most complex techniques and surely cannot be discussed in its entirety in a single article. Thus, we are going to focus on the so-called A* algorithm that is the most distinctive B amp;B graph search algorithm.
Dynamic Programming Algorithm Technique
You are reading another tutorial in the Algorithm Techniques multi-part series. As the title suggests, today we are going to briefly present the dynamic programming algorithm technique. The truth is, dynamic programming is one of the most discussed techniques in the algorithmic literature, especially since it refers to a large number of algorithms. Theoretically thousands of problems can be solved with its implementation.
Genetic Algorithm Techniques
As a continuation to our algorithm design patterns multi-part article series, right now you are reading the Genetic Algorithm techniques segment. Genetic algorithms are important because they are used for global optimizations. In a nutshell, they pick the best solution from lots of possibilities. They are fast, requiring very few system resources, and their implementations are also quick.
Greedy Strategy as an Algorithm Technique
You are reading the third segment of our algorithm design patterns series. We have successfully covered the backtracking and divide-and-conquer techniques. In this article we will cover the so-called Greedy Strategy. Greedy algorithms often, but not always, yield the optimal solution in record time since they approach problem solving from a metaheuristic point of view. Thus, it is critical to master greediness.
Divide and Conquer Algorithm Technique
This is the second segment of the multi-part series covering various algorithm design paradigms. As the title suggests, today our job is to present, discuss, and learn as much as we can, as briefly and clearly possible, about the divide-and-conquer algorithm technique. It is definitely an important concept in computer science and should be ready to be pulled out of every coder’s toolbox.
The Backtracking Algorithm Technique
Every so often during our software development endeavors we might face situations where the solution(s) can be found easily or the job can be done quickly using typical well-known algorithms that can be implemented routinely. This is the first part of a multi-segment series on programming techniques where we briefly present algorithm methods one by one. This time we are going to cover backtracking.
More Pattern Matching Algorithms: B-M
This is the second and final half of our two-part series on pattern matching, or string searching algorithms. In the first part, we covered the Knuth-Morris-Pratt (KMP) algorithm and in this segment, we’re going to present a new algorithm that originates from Boyer-Moore. It is currently considered the most efficient and practical algorithm, serving as a benchmark standard.
Pattern Matching Algorithms Demystified: KMP
Chances are that if you've worked with strings then you have also tried to locate a specific substring in the entire source string. In computer science this is called pattern matching or string matching. And to accomplish this task, there are a few classic algorithms. In this two-part series we’re going to discuss string searching algorithms. We will start with Knuth-Morris-Pratt.
According to the dictionary, standard stands for “something considered by an authority or by general consent as a basis of comparison; an approved model.” Now you may ask why we need to complicate our lives with the adoption of some coding standards. The answer to this question lies in the following pages.
A Peek into the Future: Transactional Memory
It is no secret now that the future is about multiprocessing! The Xbox360, which was released November 2005, is equipped with three hyper-threaded processors. The new PS3 is going to be equipped with the Cell processor having eight processing units (only seven are available to programmers). Even on the PC, we are seeing a rapid increase of dual core processors on both desktops and laptops. The happy days of exponential increase in processor clock speeds are over. Welcome to the world of multiprocessing!
Learning About the Graph Construct using Games, Part III
In the third and final part of our series about the graph construct using games, we learn about Euler tours, and how to use a graph to solve the problem of whether a figure can be drawn without lifting one's pencil from the paper.
Learning About the Graph Construct using Games, Part II
In this second article in a three part series, we learn about two famous algorithms that can be used to solve the classic shortest path problem, and finally get the solution to the water jug division task set in the first part (no fair reading ahead to find it!).
Learning About the Graph Construct using Games, Part 1
Certain everyday problems are easier to solve using the graph construct than any other way, such as the classic & shortest distance between cities& problem. Others are ones you might not expect. In this article, we will play some games to help us understand how we can use the graph construct.
How to Strike a Match
In a previous article, Tame the Beast by Matching Similar Strings, I presented a brief survey of approximate string matching algorithms, and argued their importance for information retrieval tasks. A classic example of information retrieval using similarity searching is entering a keyword into the search string box on Amazon’s web site in order to retrieve descriptions of products related to that keyword. Approximate string matching algorithms can be classified as equivalence algorithms and similarity ranking algorithms. In this article, I present a new similarity ranking algorithm, together with its associated string similarity metric. I also include Java source code, so you can easily incorporate the algorithm into your own applications.
Entity Relationship Modeling
Entity Relationship Modeling (ER modeling) is by far the most common way to express the analytical result of an early stage in the construction of a new database. In this ebook, Alf Pedersen describes the principles for ER modeling, as well as the most important terms used in modeling a new database.
Tame the Beast by Matching Similar Strings
My interest in string similarity stems from a desire for good user interface design. Computers are seen by many as unfriendly, unforgiving beasts that respond unkindly to requests that are almost meaningful. In this article, I demonstrate how computers can be programmed to be more forgiving of their users’ mistakes, with no additional burden on the user such as learning a special query format. Moreover, the techniques described are very widely applicable and often easy to implement.
5 Web Design Tips You Can't Live Without
In the world of web design, both novice and experienced designers often have their faults when laying out websites. Don't fall into the trap of making & common& mistakes. In this article Steve opens up his own bag of tricks, and gives us five design tips that may just make your next project that much more successful.
Practising Best Practises in Your Software Development Process
Software practices. Do you know what they are? Do you employ them in your everyday development? Whether you do or you don #39;t, Simon outlines the practices needed to achieve a development process model.
The Art of Modelling: Part 1
Conceptually, models are a medium that can be used to explain how a system operates in a way so that the chance of someone misunderstanding the concept is minimal. This article, will introduce some techniques and frameworks to help you create efficient models.