How to look at the source code for MATLAB's built-in sort function?
292 Ansichten (letzte 30 Tage)
I need to find the big O runtime for MATLAB's built-in sort function, but I'm not quite sure how to if I don't even know how the function is coded. Is there some way to look at the code for the function because I know for some built-in functions you are able to look at the source code.
Weitere Antworten (3)
Walter Roberson am 1 Mai 2013
Bearbeitet: Walter Roberson am 1 Mai 2013
To look at the source code, get a job or internship with Mathworks.
sort() is a built-in; you cannot "edit sort" to look at it.
There are a number of routines for which MATLAB calls into LAPACK or BLAS when the arrays are large enough to make it worth the overhead. I do not know if sort() is one of those. If it is, then the LAPACK sort algorithm is at http://www.netlib.org/lapack/explore-html/de/de5/slasrt_8f_source.html
I have doubts about that being the appropriate routine, as it appears to only support a single data-type.
Chien-Han Su am 21 Dez. 2019
I'm not sure whether this is what you need, I would recommend you to record (by tic and toc) and analyze the exceution time to find the Big-O since you can't not get the source code of built-in function, like this
iterStart = 10; % drop the first ten iterate
iterNum = 1000;
N = 1000;
t = zeros(iterNum,N);
for m = iterStart:iterNum
for n = 1:N
a = rand(1,n);
b = sort(a);
t(m,n) = toc;
tAvg = mean(t,1);
tAvg = tAvg/tAvg(1); % normalize
title('Normalized Execution Time for Sorting a Vector');
and you will get