Data Update
This commit is contained in:
parent
015c2add84
commit
e50b5c3114
206 changed files with 6337 additions and 523 deletions
|
|
@ -1,30 +0,0 @@
|
|||
/*REXX program finds a value in a list of integers using an iterative binary search.*/
|
||||
@= 3 7 13 19 23 31 43 47 61 73 83 89 103 109 113 131 139 151 167 181,
|
||||
193 199 229 233 241 271 283 293 313 317 337 349 353 359 383 389 401 409 421 433,
|
||||
443 449 463 467 491 503 509 523 547 571 577 601 619 643 647 661 677 683 691 709,
|
||||
743 761 773 797 811 823 829 839 859 863 883 887 911 919 941 953 971 983 1013
|
||||
/* [↑] a list of some low weak primes.*/
|
||||
parse arg ? . /*get a # that's specified on the CL.*/
|
||||
if ?=='' then do; say; say '***error*** no argument specified.'; say
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
end
|
||||
low= 1
|
||||
high= words(@)
|
||||
avg= (word(@, 1) + word(@, high)) / 2
|
||||
loc= binarySearch(low, high)
|
||||
|
||||
if loc==-1 then do; say ? " wasn't found in the list."
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
end
|
||||
else say ? ' is in the list, its index is: ' loc
|
||||
say
|
||||
say 'arithmetic mean of the ' high " values is: " avg
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
binarySearch: procedure expose @ ?; parse arg low,high
|
||||
if high<low then return -1 /*the item wasn't found in the @ list. */
|
||||
mid= (low + high) % 2 /*calculate the midpoint in the list. */
|
||||
y= word(@, mid) /*obtain the midpoint value in the list*/
|
||||
if ?=y then return mid
|
||||
if y>? then return binarySearch(low, mid-1)
|
||||
return binarySearch(mid+1, high)
|
||||
|
|
@ -1,25 +1,27 @@
|
|||
/*REXX program finds a value in a list of integers using an iterative binary search.*/
|
||||
@= 3 7 13 19 23 31 43 47 61 73 83 89 103 109 113 131 139 151 167 181,
|
||||
193 199 229 233 241 271 283 293 313 317 337 349 353 359 383 389 401 409 421 433,
|
||||
443 449 463 467 491 503 509 523 547 571 577 601 619 643 647 661 677 683 691 709,
|
||||
/* REXX program finds a value in a list of integers */
|
||||
/* using an iterative binary search. */
|
||||
list=3 7 13 19 23 31 43 47 61 73 83 89 103 109 113 131 139 151 167 181 193 199,
|
||||
229 233 241 271 283 293 313 317 337 349 353 359 383 389 401 409 421 433 443,
|
||||
449 463 467 491 503 509 523 547 571 577 601 619 643 647 661 677 683 691 709,
|
||||
743 761 773 797 811 823 829 839 859 863 883 887 911 919 941 953 971 983 1013
|
||||
/* [↑] a list of some low weak primes.*/
|
||||
parse arg ? . /*get a # that's specified on the CL.*/
|
||||
if ?=='' then do; say; say '***error*** no argument specified.'; say
|
||||
exit 13
|
||||
end
|
||||
low= 1
|
||||
high= words(@)
|
||||
say 'arithmetic mean of the ' high " values is: " (word(@, 1) + word(@, high)) / 2
|
||||
say
|
||||
do while low<=high; mid= (low + high) % 2; y= word(@, mid)
|
||||
/* list: a list of some low weak primes. */
|
||||
Parse Arg needle /* get a number to be looked for */
|
||||
If needle=="" Then
|
||||
Call exit "***error*** no argument specified."
|
||||
low=1
|
||||
high=words(list)
|
||||
Do While low<=high
|
||||
mid=(low+high)%2
|
||||
y=word(list,mid)
|
||||
Select
|
||||
When y=needle Then
|
||||
Call exit needle "is in the list, its index is:" mid'.'
|
||||
When y>needle Then /* too high */
|
||||
high=mid-1 /* set upper nound */
|
||||
Otherwise /* too low */
|
||||
low=mid+1 /* set lower limit */
|
||||
End
|
||||
End
|
||||
Call exit needle "wasn't found in the list."
|
||||
|
||||
if ?=y then do; say ? ' is in the list, its index is: ' mid
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
end
|
||||
|
||||
if y>? then high= mid - 1 /*too high? */
|
||||
else low= mid + 1 /*too low? */
|
||||
end /*while*/
|
||||
|
||||
say ? " wasn't found in the list." /*stick a fork in it, we're all done. */
|
||||
exit: Say arg(1)
|
||||
|
|
|
|||
25
Task/Binary-search/REXX/binary-search-3.rexx
Normal file
25
Task/Binary-search/REXX/binary-search-3.rexx
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
/*REXX program finds a value in a list of integers using an iterative binary search.*/
|
||||
@= 3 7 13 19 23 31 43 47 61 73 83 89 103 109 113 131 139 151 167 181,
|
||||
193 199 229 233 241 271 283 293 313 317 337 349 353 359 383 389 401 409 421 433,
|
||||
443 449 463 467 491 503 509 523 547 571 577 601 619 643 647 661 677 683 691 709,
|
||||
743 761 773 797 811 823 829 839 859 863 883 887 911 919 941 953 971 983 1013
|
||||
/* [↑] a list of some low weak primes.*/
|
||||
parse arg ? . /*get a # that's specified on the CL.*/
|
||||
if ?=='' then do; say; say '***error*** no argument specified.'; say
|
||||
exit 13
|
||||
end
|
||||
low= 1
|
||||
high= words(@)
|
||||
say 'arithmetic mean of the ' high " values is: " (word(@, 1) + word(@, high)) / 2
|
||||
say
|
||||
do while low<=high; mid= (low + high) % 2; y= word(@, mid)
|
||||
|
||||
if ?=y then do; say ? ' is in the list, its index is: ' mid
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
end
|
||||
|
||||
if y>? then high= mid - 1 /*too high? */
|
||||
else low= mid + 1 /*too low? */
|
||||
end /*while*/
|
||||
|
||||
say ? " wasn't found in the list." /*stick a fork in it, we're all done. */
|
||||
Loading…
Add table
Add a link
Reference in a new issue