one straight forward method is to build a length L sorted list, and for each element in te matrix, insert it into the list which cost logL, and discard the smallest element. Totally this cost nlogL. I am also looking for a simple function that finds the second largest element..... don't know if matlab has one
Walter Roberson <firstname.lastname@example.org> wrote in message <STjCk.14881$Il.email@example.com>... > Oluwa KuIse wrote: > > > Can anyone pls tell me how I can find the second (or third) largest element in a > > matrix AND its position. > > The algorithms that people gave all ran in -at least- time N (length of the > matrix) times the number of largest elements to be found. > > I was interested to discover a couple of weeks ago that there are simple > algorithms that for any fixed number L of largest elements, are able to > execute a -single- pass over the array and using L (or was it L+1 ?) > temporary storage locations, find the L largest values. > > Unfortunately in the short time I put into reading the algorithm, I did > not understand how the algorithm worked, so I cannot describe it here. > And I no longer recall where I found the algorithm -- though either as > a reference here or on wikipedia are the two most likely candidates.