なのでアドバイスするとあいてのよさや、やりたいことを壊してしまうことがある。
そのため
速くしてほしい場合などは
XXという条件下でXX秒以内になどという言い方をする
性能条件をいってやりかたはあいてがとくいなものにまかせることがある
最悪なのはクックソートはやいなーとか、クックソートクイックソートなどとつぶやくことである。
こういう場合はクイックソートを使うようになどと指揮命令しなければならない
クイックソート体操!とかいいはじめるひとがめんどくさいと思った業界
べつだんいってくれればやるのにという
アルゴリズムの中でも簡単で有名なソートのなかでも、さらに簡単なバブルソートを見ても
N=1,N=Big Dataのときはそれまでならっていたアルゴリズムどおりの評価式ではなく特殊解になる
ということを学んだ。この辺は だいたい子の量でもしっかり学ぶと大学で1単位か2単位
バブルソートだけ見ても、特殊解はこのN=1,Bigという1組だけではなく、たくさんの特殊な事例があるだろう(構成による)
選択と言うのは2択であったとしても16個懸念要素があったら6万通りぐらい
32個合ったら40億通りぐらいの組み合わせがあるので
とてもじゃないが、総当りでは一般的には終わらない(当然この理屈にも特殊解はアル)
IT分野は、ようするにこういう沢山の基礎知識にもとづいた特殊解の理解が必要になるので
基礎的なkとだけでも、学問として教えると大学4-6年となるし
さて、これでようやく、ITの勉強に入る前に、基礎的なことを教え終わったんだけど
ITの何を教えればいい?
なんでこんなことをいうかというと2週間で作ったものは
自分たちでも3-4週間もあればできるだろうという人が
こういう話をしないといけなくなる業界なので注意
アルゴリズムがある。
2143とかを1234へ
このアルゴリズムは学校などで習うように、どのぐらいの計算量で処理できるかNNというのをオーダという考え方で処理する。
たとえばNとかN*NとかN;Log(N9とか
たとえばNが10秒だとするとN*Nと言うアルゴリズムは100秒ということになる。
2Nのアルゴリズムなら20秒
一般的に 2NのアルゴリズムよりN*Nのアルゴリズムのほうが遅いが(20秒 vs 100秒)
N=1のときだけ2vs1となり N*Nのほうが高速となる
こういうアルゴリズムの一般的な速さをオーダといい 特殊解があるということの理解にN=1の例がよい。
一般的にソートはN=1,Big(ビックデータ)のときにそれまでの数式とは違う特殊解となる。
これっていま、小学校ぐらいでならう?