|
|
||||
|
|
Algorithmic Efficiency -- Analyzing Algorithms for(int x=0; x<n; x++)
{
int min = x;
for(int y=x; y<n; y++)
{
if(array[y]<array[min])
min=y;
}
int temp = array[x];
array[x] = array[min];
array[min] = temp;
}
We compute that the order of the outer loop (for(int x = 0; ..)) is O(n); then, we compute that the order of the inner loop is roughly O(n). Note that even though its efficiency varies based on the value of x, the average efficiency is n/2, and we ignore the constant, so it's O(n). After multiplying together the order of the outer and the inner loop, we have O(n^2).In order to use this approach effectively, you have to be able to deduce the order of the various steps of the algorithm. And you won't always have a piece of code to look at; sometimes you may want to just discuss a concept and determine its order. Some efficiencies are more important than others in computer science, and on the next page, you'll see a list of the most important and useful orders of efficiency, along with examples of algorithms having that efficiency. Part 3: Examples of various orders and algorithms ----- |
|
||