We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
In c8051f120 controller, i use merge sorting technique of one of my application in a project. but problem is local variable acting as global variables within a function(auto keyword). following is a example of merge sorting. divide(int left,int right) { int mid; if(left<right) { mid=(left+right)/2; divide(left,mid); divide(mid+1,right); } }
problem is local variable acting as global variables within a function(auto keyword). I rather heavily doubt the correctness of that assessment.
following is a example of merge sorting. No, it isn't. Not only is that not mergesort, that's actually no sort algorithm at all. One can tell by it not moving any data at all.
But yes, even this snippet does have one feature that's rather problematic on an 8051: it's a recursive function. The 8051 is bad at recursion.
I rather heavily doubt the correctness of that assessment.
Most probably an effect of the variable overlaying that the Keil C51 package uses by default.
Which is why, "The 8051 is bad at recursion"
http://www.keil.com/support/man/docs/c51/c51_le_reentrantfuncs.htm
Oh dear.