Varying speed of a program.
05-25-2022, 03:51 PM (This post was last modified: 05-25-2022 04:09 PM by Albert Chan.)
Post: #10
 Albert Chan Senior Member Posts: 2,686 Joined: Jul 2018
RE: Varying speed of a program.
To speed up, we could do in-place divide, instead of building up quotient, 1 char at a time.

This eliminated cost of generating intermediate strings, and cost of garbage collection, both O(n^2)
(Timing jitters likely comes from unpredictable timing of garbage collection.)

With positive integer divisor, dividend has enough room to hold the quotient.

CAS> s := "12345"
CAS> s[1] =< "0"    // in-place string update
CAS> s                   → "02345"

s is treated just like an array, with INPUT showed array_sto("0",s[1])

Instead of removing quotient leading zeroes, we could track index of first non-zero entry.

Comment: we might as well work with true array, saving cost of str/num conversions.

HOME> L1 := ASC("12345") - 48      → {1,2,3,4,5}
HOME> L1[1] := 0                           → {0,2,3,4,5}
 « Next Oldest | Next Newest »

 Messages In This Thread Varying speed of a program. - matalog - 05-21-2022, 09:46 AM RE: Varying speed of a program. - albud44 - 05-21-2022, 10:02 AM RE: Varying speed of a program. - Gene - 05-21-2022, 10:09 PM RE: Varying speed of a program. - matalog - 05-21-2022, 05:01 PM RE: Varying speed of a program. - matalog - 05-21-2022, 11:47 PM RE: Varying speed of a program. - anyfoo - 05-22-2022, 01:34 AM RE: Varying speed of a program. - matalog - 05-24-2022, 08:43 PM RE: Varying speed of a program. - Albert Chan - 05-25-2022 03:51 PM RE: Varying speed of a program. - Terje Vallestad - 05-22-2022, 09:26 AM RE: Varying speed of a program. - Kevin Ouellet - 05-23-2022, 10:55 AM

User(s) browsing this thread: 1 Guest(s)