Click here to Skip to main content
15,898,953 members

Survey Results

Should array indexing start at 0 or 1?   [Edit]

Survey period: 7 Mar 2011 to 14 Mar 2011

Old school VB devs and old school C devs know the answer. What's your feeling in this modern, enlightened era?

OptionVotes% 
01,11587.93
115312.07



 
GeneralRe: These results surprise me. Pin
Chaveca_9-Mar-11 3:23
Chaveca_9-Mar-11 3:23 
GeneralRe: These results surprise me. Pin
mojp10-Mar-11 5:11
mojp10-Mar-11 5:11 
GeneralRe: These results surprise me. Pin
hairy_hats11-Mar-11 0:33
hairy_hats11-Mar-11 0:33 
GeneralRe: These results surprise me. Pin
Klaus-Werner Konrad13-Mar-11 2:13
Klaus-Werner Konrad13-Mar-11 2:13 
GeneralHere's why 0-based indices are beautiful: [modified] Pin
Daniel Grunwald7-Mar-11 19:41
Daniel Grunwald7-Mar-11 19:41 
GeneralRe: Here's why 0-based indices are beautiful: Pin
Member 31167107-Mar-11 20:50
Member 31167107-Mar-11 20:50 
GeneralRe: Here's why 0-based indices are beautiful: Pin
MarqW7-Mar-11 21:02
MarqW7-Mar-11 21:02 
GeneralRe: Here's why 0-based indices are beautiful: Pin
Kamran Behzad10-Mar-11 17:10
Kamran Behzad10-Mar-11 17:10 
Here is where they get ugly:

You have a binary search that not only returns the index of the found item, but if the item is not found it returns the negative of the index that it would have had, had it been in the list. In other words if the user wants to check for duplicate values before inserting an item in the list then a result of say -4 tells him his new value is not in the list but can be inserted at position 4.

All good so far.

Now what happens if the new number is smaller than any number in the list (assuming the list is ascending). It must be inserted at index 0 (assuming 0 base array). What is the algorithm to return? It cannot return -1 because that means the insertion must be at index 1. And there is no -0 !

In my own implementation, in such case I am returning int.MinValue and check for it in the calling process. But it's ugly coding! Cry | :((
GeneralRe: Here's why 0-based indices are beautiful: Pin
Daniel Grunwald10-Mar-11 20:24
Daniel Grunwald10-Mar-11 20:24 
GeneralI can't Understand? Pin
Pritesh Aryan7-Mar-11 17:57
Pritesh Aryan7-Mar-11 17:57 
GeneralRe: I can't Understand? PinPopular
OriginalGriff7-Mar-11 21:35
mveOriginalGriff7-Mar-11 21:35 
GeneralPeople accepted the reality... Pin
Jun Du7-Mar-11 15:09
Jun Du7-Mar-11 15:09 
GeneralRe: People accepted the reality... Pin
Chaveca_8-Mar-11 23:00
Chaveca_8-Mar-11 23:00 
GeneralRe: People accepted the reality... Pin
Lex Steers10-Mar-11 6:48
Lex Steers10-Mar-11 6:48 
GeneralI don't give a rats Pin
Mycroft Holmes7-Mar-11 14:01
professionalMycroft Holmes7-Mar-11 14:01 
GeneralBoth? Pin
PJ Arends7-Mar-11 6:46
professionalPJ Arends7-Mar-11 6:46 
GeneralRe: Both? Pin
Nagy Vilmos7-Mar-11 7:10
professionalNagy Vilmos7-Mar-11 7:10 
GeneralRe: Both? Pin
PJ Arends7-Mar-11 7:19
professionalPJ Arends7-Mar-11 7:19 
GeneralRe: Both? Pin
#realJSOP8-Mar-11 10:11
professional#realJSOP8-Mar-11 10:11 
GeneralRe: Both? Pin
rittjc8-Mar-11 14:29
rittjc8-Mar-11 14:29 
GeneralMust be 0 in order to be consistent across "all" .NET languages. Pin
The Storm7-Mar-11 6:15
The Storm7-Mar-11 6:15 
GeneralRe: Must be 0 in order to be consistent across "all" .NET languages. Pin
Mike Hankey7-Mar-11 12:08
mveMike Hankey7-Mar-11 12:08 
GeneralRe: Must be 0 in order to be consistent across "all" .NET languages. Pin
rittjc8-Mar-11 14:46
rittjc8-Mar-11 14:46 
GeneralArray/Pointer/Loop/Lifts Pin
Ajay Vijayvargiya7-Mar-11 4:35
Ajay Vijayvargiya7-Mar-11 4:35 
GeneralRe: Array/Pointer/Loop/Lifts Pin
Phil J Pearson7-Mar-11 5:33
Phil J Pearson7-Mar-11 5:33 

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.