code_junkie

Best algorithm for determining the high and low in an array of numbers?

Nov 11th, 2011
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 KB | None | 0 0
  1. var low = 1;
  2. var high = 1;
  3. for ( loop numbers ) {
  4. if ( number > high ) {
  5. high = number;
  6. }
  7. if ( low == 1 ) {
  8. low = high;
  9. }
  10. if ( number < low ) {
  11. low = number;
  12. }
  13. }
  14.  
  15. var myArray = [...],
  16. low = myArray[0],
  17. high = myArray[0]
  18. ;
  19. // start looping at index 1
  20. for (var i = 1, l = myArray.length; i < l; ++i) {
  21. if (myArray[i] > high) {
  22. high = myArray[i];
  23. } else if (myArray[i] < low) {
  24. low = myArray[i];
  25. }
  26. }
  27.  
  28. for (var i = 1, val; (val = myArray[i]) !== undefined; ++i) {
  29. if (val > high) {
  30. high = val;
  31. } else if (val < low) {
  32. low = val;
  33. }
  34. }
  35.  
  36. var low = numbers[0]; // first number in array
  37. var high = numbers[0]; // first number in array
  38. for ( loop numbers ) {
  39. if ( number > high ) {
  40. high = number;
  41. }
  42. if ( number < low ) {
  43. low = number;
  44. }
  45. }
  46.  
  47. # Initialize max & min
  48. my $max = $list[0];
  49. my $min = $list[0];
  50. for my $num (@list) {
  51. $max = $num if $num > $max;
  52. $min = $num if $num < $min;
  53. }
  54.  
  55. std::pair<int, int> minmax(int* a, int n)
  56. {
  57. int low = std::numeric_limits<int>::max();
  58. int high = std::numeric_limits<int>::min();
  59.  
  60. for (int i = 0; i < n-1; i += 2) {
  61. if (a[i] < a[i+i]) {
  62. if (a[i] < low) {
  63. low = a[i];
  64. }
  65. if (a[i+1] > high) {
  66. high = a[i+1];
  67. }
  68. }
  69. else {
  70. if (a[i] > high) {
  71. high = a[i];
  72. }
  73. if (a[i+1] < low) {
  74. low = a[i+1];
  75. }
  76. }
  77. }
  78.  
  79. // Handle last element if we've got an odd array size
  80. if (a[n-1] < low) {
  81. low = a[n-1];
  82. }
  83. if (a[n-1] > high) {
  84. high = a[n-1];
  85. }
  86.  
  87. return std::make_pair(low, high);
  88. }
  89.  
  90. var numbers = [1,2,5,9,16,4,6];
  91.  
  92. var maxNumber = Math.max.apply(null, numbers);
  93. var minNumber = Math.min.apply(null, numbers);
  94.  
  95. var A = [ /* 100,000 random integers */];
  96.  
  97. function minmax() {
  98. var low = A[A.length-1];
  99. var high = A[A.length-1];
  100. var i, x, y;
  101. for (i = A.length - 3; 0 <= i; i -= 2) {
  102. y = A[i+1];
  103. x = A[i];
  104. if (x < y) {
  105. if (x < low) {
  106. low = x;
  107. }
  108. if (high < y) {
  109. high = y;
  110. }
  111. } else {
  112. if (y < low) {
  113. low = y;
  114. }
  115. if (high < x) {
  116. high = x;
  117. }
  118. }
  119. }
  120. if (i === -1) {
  121. x = A[0];
  122. if (high < x) {
  123. high = x;
  124. } else if (x < low) {
  125. low = x;
  126. }
  127. }
  128. return [low, high];
  129. }
  130.  
  131. for (var i = 0; i < 1000; ++i) { minmax(); }
  132.  
  133. var sorted = arrayOfNumbers.sort(function(a, b) { return a - b; }),
  134. ,min = sorted[0], max = sorted[sorted.length -1];
  135.  
  136. // standard sort function
  137. function sorter(a, b) {
  138. if (/* some check */)
  139. return -1; // a should be left of b
  140. if (/*some other check*/)
  141. return 1; // a should be to the right of b
  142. return 0; // a is equal to b (no movement)
  143. }
  144.  
  145. var numbers = [5,8,123,1,7,77,3.14,-5];
  146.  
  147. // default lexicographical sort
  148. numbers.sort() // -5,1,123,3.14,5,7,77,8
  149.  
  150. // numerical sort
  151. numbers.sort(function(a, b) { return a - b; }) // -5,1,123,3.14,5,7,77,8
  152.  
  153. low = +INFINITY
  154. high = -INFINITY
  155. for each n in numbers:
  156. if n < low:
  157. low = n
  158. if n > high:
  159. high = n
  160.  
  161. enter code here
  162. int l=0,h=1,index,i=3;
  163. if(a[l]>a[h])
  164. swap(&a[l],&a[h]);
  165. for(i=2;i<9;i++)
  166. {
  167. if(a[i]<a[l])
  168. {
  169. swap(&a[i],&a[l]);
  170. }
  171. if(a[i]>a[h])
  172. {
  173. swap(&a[i],&a[h]);
  174. }
  175. }
  176. printf("Low: %d High: %d",a[0],a[1]);
  177.  
  178. >>> seq = [1, 2, 3, 4, 5, 6, 7]
  179. >>> max(seq)
  180. 7
  181. >>> min(seq)
  182. 1
Add Comment
Please, Sign In to add comment