vim-castle/home/.vim/vimwiki/vimwiki/Bubble Sort.wiki

48 lines
1.0 KiB
Plaintext

== Bubble Sort ==
Stats::
:: Worst Case Performance: O(n^2^)
:: Best Case Performance: O(n)
=== Optimized Psuedocode ===
Bubble Sort can be optimized by observing that the n-th pass finds the n-th largest element and puts it into its final place. So the inner loop can avoid looking at the last n-1 items when running for the n-th time.
{{{
function bubbleSort(items) {
n = count(items);
swapped = false;
while(!swapped) {
swapped = false;
for(i = 1; i < n; i++) {
if(items[i-1] > items[i]) {
tmp = items[i-1];
items[i-1] = items[i];
items[i] = tmp;
swapped = true;
}
}
n = n-1;
}
}
}}}
=== Unoptimized Psuedocode ===
{{{
function bubbleSort(items) {
swapped = false;
while(!swapped) {
swapped = false;
for(i = 1; i < count(items); i++) {
if(items[i-1] > items[i]) {
tmp = items[i-1];
items[i-1] = items[i];
items[i] = tmp;
swapped = true;
}
}
}
}
}}}
=== Additional Info ===
Wikipedia Article: [http://en.wikipedia.org/wiki/Bubble_sort]