Click here to Skip to main content
15,887,683 members

The Weird and The Wonderful

   

The Weird and The Wonderful forum is a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance.

We all come across code that simply boggles the mind. Lazy kludges, embarrassing mistakes, horrid workarounds and developers just not quite getting it. And then somedays we come across - or write - the truly sublime.

Post your Best, your worst, and your most interesting. But please - no programming questions . This forum is purely for amusement and discussions on code snippets. All actual programming questions will be removed.

 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
Jon McKee27-Jan-20 13:35
professionalJon McKee27-Jan-20 13:35 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
raddevus28-Jan-20 1:39
mvaraddevus28-Jan-20 1:39 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
Amarnath S27-Jan-20 13:57
professionalAmarnath S27-Jan-20 13:57 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
raddevus28-Jan-20 1:41
mvaraddevus28-Jan-20 1:41 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
maze328-Jan-20 22:34
professionalmaze328-Jan-20 22:34 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
raddevus29-Jan-20 2:14
mvaraddevus29-Jan-20 2:14 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
RugbyLeague29-Jan-20 21:17
RugbyLeague29-Jan-20 21:17 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
englebart29-Jan-20 3:23
professionalenglebart29-Jan-20 3:23 
The statistics you should capture in your output is the number of comparisons and number of swaps performed for each case. In the domain of complex objects, the comparison is likely more expensive then swapping a reference/pointer.

Classic bubble sort "back in the day" consisted of two for loops.
I think this approach is O(N log N).
Each inner iteration "bubbles" the min or max to the end of the list, so there is no reason to double check the constantly, moving last "bucket" on each iteration. The inner loop needs to run fewer iterations for each outer iteration.
for (int max = 0; max < length-1; ++max)
  for (int i = 0; i < max; ++i) {
    // 
  }

Combine this with your logic to stop if the list is in order and the number of comparisons should go down by log N.

Careful of infinite loops with this type of structure!

If this was written for a generic and someone passed in a poorly implemented operator> such that it returns:

a > b ==> true
b > a ==> true

then this code would result in an infinite loop where it keeps swapping values.
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
Jon McKee30-Jan-20 9:16
professionalJon McKee30-Jan-20 9:16 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
englebart30-Jan-20 9:28
professionalenglebart30-Jan-20 9:28 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
Kirk 103898212-Feb-20 16:37
Kirk 103898212-Feb-20 16:37 
GeneralRe: Bubble Sort, O(N^2) aka Quadratic time Pin
John R. Shaw26-Mar-20 20:55
John R. Shaw26-Mar-20 20:55 
GeneralMy very own accidental DoS program Pin
kmoorevs15-Jan-20 10:34
kmoorevs15-Jan-20 10:34 
GeneralRe: My very own accidental DoS program Pin
Ron Anders15-Jan-20 15:46
Ron Anders15-Jan-20 15:46 
GeneralRe: My very own accidental DoS program Pin
John R. Shaw26-Mar-20 21:25
John R. Shaw26-Mar-20 21:25 
Generalpurchased code from who knows where Pin
rnbergren10-Jan-20 6:47
rnbergren10-Jan-20 6:47 
GeneralRe: purchased code from who knows where Pin
ZurdoDev10-Jan-20 7:06
professionalZurdoDev10-Jan-20 7:06 
GeneralRe: purchased code from who knows where Pin
John R. Shaw26-Mar-20 21:30
John R. Shaw26-Mar-20 21:30 
GeneralRe: purchased code from who knows where Pin
phil.o10-Jan-20 7:29
professionalphil.o10-Jan-20 7:29 
GeneralRe: purchased code from who knows where Pin
RickZeeland10-Jan-20 7:30
mveRickZeeland10-Jan-20 7:30 
GeneralRe: purchased code from who knows where Pin
Eddy Vluggen15-Jan-20 12:01
professionalEddy Vluggen15-Jan-20 12:01 
GeneralCross-Platform: dotnet core web api QR Codes Pin
raddevus30-Dec-19 10:00
mvaraddevus30-Dec-19 10:00 
PraiseRe: Cross-Platform: dotnet core web api QR Codes Pin
RickZeeland30-Dec-19 10:23
mveRickZeeland30-Dec-19 10:23 
GeneralRe: Cross-Platform: dotnet core web api QR Codes Pin
Brisingr Aerowing10-Jan-20 10:34
professionalBrisingr Aerowing10-Jan-20 10:34 
GeneralRe: Cross-Platform: dotnet core web api QR Codes Pin
raddevus10-Jan-20 11:04
mvaraddevus10-Jan-20 11:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.