From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 10db24,4cf070091283b555 X-Google-Attributes: gid10db24,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public From: huang@mnsinc.com (Szu-Wen Huang) Subject: Re: What's the best language to learn? [was Re: Should I learn C or Pascal?] Date: 1996/08/21 Message-ID: <4vdnod$5i8@news1.mnsinc.com>#1/1 X-Deja-AN: 175437587 distribution: inet references: <01bb8c6d$c62d44c0$87ee6fce@timpent.airshields.com> followup-to: comp.edu,comp.lang.ada,comp.lang.c,comp.lang.c++,comp.unix.programmer organization: Monumental Network Systems newsgroups: comp.edu,comp.lang.ada,comp.lang.c,comp.lang.c++,comp.unix.programmer Date: 1996-08-21T00:00:00+00:00 List-Id: Mark Wooding (mdw@excessus.demon.co.uk) wrote: [snip] : char buf[...]; : char *p; : ... : while (buf[0]==' ') : { : for (p=buf;p[0]=p[1];p++) : ; : } : while (buf[strlen(buf)-1]==' ') : buf[strlen(buf)-1]=0 : I can't believe that anyone with an understanding of what goes on `under : the covers' would possibly write anything like this without feeling ill. : An inkling of what this would be translated into by any implementation : would surely avoid horrors like this. Let's see. for loop nested in a while loop. O(n^2). The job to do is to strip leading spaces. Which means find first non-space and copy the rest of the string from there to the start. Which is O(n) + O(n). strlen() is O(n), nested in a while, makes it O(n^2). The job to do is to strip trailing spaces. Which means find last non-space and put a null terminator after that. Which is, naively, O(n) to find the end of the string and O(n) to walk back till we hit a non-space. A little more thought and we realize that just O(n) is quite easy to achieve if we keep a running pointer to the last scanned non-space character. What exactly do I need under the cover? This atrocity was committed by somebody who doesn't even know C and algorithms. You're not proving your point (if that indeed is your point) that assembly/architecture is *required* to understand algorithms at all. To require it you must prove that there isn't any other way to effectively teach algorithms. The state of education today can be attributed to many, many factors, not necessarily abstractions! : Anyone who asks `what's wrong with that' will be shot. This code works, by the way, as far as I can tell. It's even portable. I suggest you show us somebody with equivalent experience in general computing as this individual but started on assembly language and see how this person fares with the problem. Oh, and give them the same amount of time.