はてなキーワード: バブルソートとは
バブルソート、バケツソートであってもN=1,Bigの時には異なる数値を出すことがある。
ましていわんやその他のソート。
当然何でこれだけの数のソートアルゴリズムがあるか?といえば条件に応じて変えるため
あるいみ、バケツソートで書かれていましたN=Bigでないとして
そりゃ、標準ライブラリにあるようなソートには変えてくることは予想ができる。
しかし、デバッグ時にはバケツソートになっていることもある。簡単だしデータ少なく入れるから。
これもバケツソートの使い方。いわゆる単体テストじゃないけど、テスト中はバグが出にくいものにかえてあることがある。
これは現場で知っておくべきこと。標準的なライブラリにあるものがわざわざコードが書いてある。
そりゃなんかのいみがある。
さて、たくさんのものを書き留めておくのは、正直、人間いつ死ぬかもしれないから死んだ跡のことを考えてというのが半分
でバブルソートがN=1のときに特殊解となるというのは説明したが、ほかにも典型的なのは今度は逆に100万件=メガオーダをこえて
数百億件を越えてテラオーダーを越え始めると、メインメモリからデータが落ちて、SSDへのアクセスがバーストする。
こうなると、すべてのデータをメインメモリにキャッシュできるもしくはシーケンシャルにキャッシュで切るケースと比べてSSDからの読み込みまちが
有意義に増加するためNが最適な大きさであるときと比べて、速度劣化が顕著になる。これにより情報数学におけるオーダ関数が使えなくなる。
オーダ関数はあくまで件数によらず検索速度一定であるという前提であるため、件数が増加するとそもそも1件あたりの検索速度が大幅に変更されることは想定外だからである。
業界の話はある。
しかも、いまの高等教育がどうなってるかは知らん。だからま増田。
大学などに入ったら空気抵抗というものを加味するんだよって教えておく
同じようにITにもいても
バブルソートの速度はO(N^2) POW(N,2)とする。ただし、Nは適度に大きいものとする
という但し書きは重要というかN=1の場合は1である。というのは考えればわかるんだけど、いちおういっておかないと
間違える人が出るというのは、バブルソートではないときに重要な考え方だから
初期に教えておく。
現場ではやるんだけどね。
適度に大きいというのはN=1だけではなく、いまはやりのビックデーターなどのようにNが極端に大きい場合も理屈が異なる
という事を示すために、適度に大きいとすることが重要。
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 47 | 7256 | 154.4 | 63 |
01 | 50 | 4977 | 99.5 | 56.5 |
02 | 29 | 3577 | 123.3 | 46 |
03 | 14 | 851 | 60.8 | 52.5 |
04 | 21 | 3197 | 152.2 | 65 |
05 | 23 | 2292 | 99.7 | 53 |
06 | 32 | 2288 | 71.5 | 40 |
07 | 32 | 2881 | 90.0 | 56 |
08 | 86 | 7114 | 82.7 | 48 |
09 | 78 | 8785 | 112.6 | 55.5 |
10 | 96 | 6746 | 70.3 | 46 |
11 | 117 | 10082 | 86.2 | 40 |
12 | 152 | 9908 | 65.2 | 37.5 |
13 | 81 | 9487 | 117.1 | 45 |
14 | 90 | 5703 | 63.4 | 35 |
15 | 79 | 5744 | 72.7 | 30 |
16 | 83 | 5401 | 65.1 | 31 |
17 | 126 | 10742 | 85.3 | 35.5 |
18 | 170 | 10344 | 60.8 | 35.5 |
19 | 97 | 11194 | 115.4 | 41 |
20 | 81 | 7203 | 88.9 | 36 |
21 | 100 | 37819 | 378.2 | 48 |
22 | 64 | 8896 | 139.0 | 53.5 |
23 | 107 | 15601 | 145.8 | 40 |
1日 | 1855 | 198088 | 106.8 | 41 |
アバン(5), バブルソート(6), APA(4), ピジョン(4), ブギー(4), 学生証(7), STORY(5), nn(13), 整備士(4), 圭(4), 宮下(3), グレタ(28), HDD(10), PR(9), 頭痛(11), 表現の自由戦士(12), ステーキ(8), 挟ん(7), クリスマス(7), 歌い(6), 嘘つき(9), 個人情報(12), ステマ(11), 求人(7), ストーカー(8), 笑わ(8), n(14), らし(6), 眼鏡(6), ハゲ(18), 漫画家(12), ミス(12), ラノベ(10), 少女(10), ジャンプ(10), 機械(10), 読者(10), 奥さん(12)
■学生証を持ち歩けない /20191209093153(11), ■いい歳してゲーセン、恥ずかしくない? /20191208144037(10), ■魚の焼き方がわからなすぎるんだけど /20191209190037(9), ■WEB漫画家にはステマの意識はなかったはず /20191208014834(9), ■実写のアニメ化 /20191208144453(8), ■当方配達業のアラフォーおっさん /20191208163428(8), ■彼氏に大事にされないのが嫌だ(追記しました) /20191208094452(8), ■「その二次創作、この作品でやる必要無くない?」ってのはな /20191209131149(6), ■イワシの刺身の旨さは異常 /20191209134207(6), ■「営業中」の看板を探してます /20191209143021(6), ■煽り耐性の付け方 /20191209144256(6), ■自分を歩行者だと思い込んでいる自転車 /20191209153449(6), ■ /20191209170427(6), ■ゼロからプログラミングを覚えるには /20191209204419(5), ■お酒を飲んだらパリピになれると思ってた /20191209175633(5), ■anond:20191209180602 /20191209180729(5), (タイトル不明) /20191209151251(5), ■ケニア人が入社したから役立ちそうなこと教えて /20191208144252(5), ■ゆる募:陸海空軍兵器+戦争が主テーマではない漫画・アニメ・小説 /20191209170111(5), ■消費税上がったけど、正直言ってほとんど変わって無くない? /20191209065500(5), ■ /20191209082912(5), ■メンタルの鍛え方 /20191209011753(5), ■anond:20191209121420 /20191209123638(5), ■私は奥さんに正社員になって欲しい /20191208234104(5)
私は20代半ば手前の者です。
昨年仕事(第一次産業)を辞めてしまい、学歴もスキルもないのに何やってんだろ...と引きこもりかけたところ、
ハローワークで長期の職業訓練を見つけたので応募してみました。
それは専門学校に委託される2年間の訓練でした。その間失業保険の支給は、期限が過ぎても延長してもらえます。
要するに入学料・授業料タダ、お金をもらいながら勉強でき、専門卒になれるチャンスというわけです。
(本当に有難い制度です。就職したら、きちん税金を納めて世の中にお返しするつもりです)
どうやら希望者は少なかったようで、筆記(中学レベルの知識で大丈夫でした)と面接はすんなり通りました。
同じ訓練生は1割程度です。(30~40代の方が2人おられます)
ワイワイやる人が3割、静かな人が7割ぐらい? といった印象です。
男子100%ですが、ホームルームだけは女子100%のコースと一緒にやります。
悪い人はいない感じで、授業が荒れて成り立たないとか、そういうのはなくてよかったです。
ただ、バイトが忙しいのか授業中イビキかいて寝ちゃう人や、全然授業について行けなくて辞めちゃう人はいます。
○Office(前期のみ)
word,excel,powerpointを一通りやりました。PC操作に慣れていない人も多いので、
手取り足取りゆっくりやる感じでした。自分は仕事で使ったことがあったので、課題を早く終わらせて
○C言語
terapadとコマンドプロンプトを使っての授業です。(コンパイラはborlandです)
元SEの先生(本人曰くCOBOLer)の説明聞いてから、課題をこなしていく感じです。
入学前に、RubyやらJavaの参考書を一周してみたり、ドットインストールでC言語の動画を見たりしていたので、
授業にはついていけています。
ただ授業だけだと完全に足りなさそうなので自学を頑張ってます。
分野ごとに授業があります。教科書を読んで先生が板書・たまに問題集やプリントを生徒にやらせるといったスタイルです。
ただ試験対策なので、問題演習を重視した方が良いと思いました。
授業を聴きながら(たまに当てられるので)、ひたすら過去問をやっています。
ちなみに学校は12月の修了試験(合格すると本試験の午前問題免除)→来年4月の本試験 を前提にカリキュラムを組んでいますが、
私は年も食っているし、合格が就職活動に間に合わないので、来月受験します。
就職指導の先生は応用情報技術者も取っておけ、と言われましたが、必要ですかね...?
勿論取らないに越したことはありませんが、Railsチュートリアルとか他の技術書に時間をさいたほうがいいかな、と思いました。
○アルゴリズム(前期のみ)
フローチャートや疑似言語を使って、バブルソートや基本選択法など初歩的なアルゴリズムの勉強です。
実際のプログラムのコードの方がわかりやすい気がしますが、基本情報技術者試験対策なので仕方ないですね。
今も現場ではフローチャートや疑似言語は使われているのですかね?
そんなの古い現場でしか使ってないよ、という意見はよく聞きますが...
先生の意向でなぜかメモ帳推奨。(他のエディタを使っていたら嫌な顔をされた)
素人がいうのも何ですけど、ミスに気づきにくいし、使いづらくないですかね...
案の定何でもないところでハマる人がいて、授業はよく止まってしまいます。
ブラウザの開発者ツールの使い方を隣の子に教えてあげたら、喜んで使ってくれていましたが、
やっぱり変なもん教えるなという目を先生から向けられちゃいました...
○データベース実習(後期〜)
Accessを使った授業です。テキスト通りにやっていきます。
Accessは初めて使いましたが、Mysqlをちょこっと触ったことがあるので、要領はなんとなく掴めました。
これも授業は遅いので、先に教科書の内容は家で一通りやってしまいました。
グループワークとかやめてください死んでしまいます、と思ったけど、意外と楽しめました。
ただ、喋らない人たちしか居ないグループだと、何を話しかけても反応が薄かったので、ちょっと辛かったです。
・授業で使うPCはメモリ4GBでもうちょっと欲しいなあと思いました。
エディタはAtomをUSBに入れて使っていましたが、カクカクでよくフリーズしました...
モニタも19インチの正方形で、ウィンドウをたくさん出したい時は不便ですね。
どんな職場に行ってもどんな環境でも何とかやれ、という訓練ということなんでしょうかね。
1年生後半にRubyの基礎、インターンシップ(強制)、就職活動の開始
2年生からは、Java,Rails,サーバ構築, データベース構築あたりの授業、という流れで進んでいきます。
年齢が20後半になるので、周りの若い人たちと何かしら差をつけないといけないので大変ですが、
地元企業のSE(Web系を希望しています)で採ってもらえるよう頑張ります。
アドバイスがありましたら、いただけると嬉しいです。
拙い感想文にいろいろと反応いただきありがとうございます。
ごもっともです。私は皆様の雇用保険から学校に通わさせていただいているので、文句言う立場じゃないですね...
ただ、年100万近く払っている一般生徒の方は、不満に思っているかもしれませんね。
>>田舎で数年間無職してるけどIT系の就職訓練無くて最悪 羨ましい 田舎はゴミ
そうですか... 私の住んでいるところも地方都市ではない田舎なのですが、
近隣にIT企業が進出してきていることもあってか、今年からIT系が訓練の対象となりました。
都市部ではない地域も、もっとIT系の訓練が拡充されると良いですね。
>>otihateten3510 基本情報さえ取ればどっかに潜り込めるだろうから、そこで3年くらい真面目にやれば結構いけるとおもう。
>>コード書けると良い。/授業はまあそんなもんだよね。現役の人に聞いたほうが正しい。/東京のほうがイージー
ちょっと精神的に病んで前の仕事をやめてしまったので、家族のサポートを得て、地元に就職しようという情けない有様でございます。
あれは小学校に入る1年前のこと。
という教材を母が持ってきた。
会話編と単語編があって、母は会話編を熱心に覚えさせようとしたが、僕は単語編しか興味を示さなかった。
文字列の並びに意味があること、つまりD,O,Gいう文字列が犬を表すこと、それには少し興味がもてた。
記号として、24文字があることには興味がもてて、大文字限定だが、アルファベットの読み方はマスターした。
当時としては時代遅れの機種だったと思う。
ファミコンよりもっと低レベルなゲームのROMも二本もらった。
紫色の表紙のMSXBASICの教本がついてきて、なぜかその本を読みはじめた。
さっき説明したように大文字だけは読めたので、小1か小2だったと思うが、読み進めることが出来た。
画面に線を引くとか、点を打つとか、文字を表示させるとか、その程度しか出来なかったが、ゲームをしてるようだった。
自分でも読めたが、読み聞かせをせがむ甘えん坊だったので、たまに母に読んでもらうと、母は自分がいつも
「アイエヌピーユーティー」と呼ぶ「INPUT」という文字列を
「インプット」と呼び、その度に「インプットってなに?アイエヌピーユーティーのこと?」
と間違いを訂正させた。
母親は僕がなんでこんな本を読み聞かせをせがむのか理解できなかったそうだ。
小2くらいだと、IF関数やループを理解できなくて、母に何度も質問した。
母もわからなくて困ったそうな。
私は座って聞くタイプではなく、自分は他の遊びをしながら母に朗読させるという非常に図々しい読み聞かせを要求する子供だった。
ただでさえ小2には難しく、自分で読むときはギリギリ理解できても、他の遊びをしながらだと、時々理解がぶっ飛んだ。
その瞬間によく転んだ。
よく母も付き合ってくれたものだ。
小3くらいだったか、巻末の50行くらいのブロックくずしのプログラムを入力した。
毎日コツコツと打ち込んで、データレコーダーに保存すること数日。
実行してはエラー。
画面のプログラムと本を舐めるように見比べて、間違いを探しの繰り返し。
始めて動いた時は感動した。
母や父に自慢したが、反応はイマイチだった。
小3だったら読み解くくらいは出来るようになったが、それが精一杯で、自分で作ったりは出来のが大きいかな。
同じプログラムを書いてはパラメーターを変えてみることの繰り返しをしたが、すぐ飽きた。
その頃、パソコンというものとロータス123があるといろいろ便利という噂を聞いて、パソコン雑誌1冊が我が家にきた。
あの頃のパソコン雑誌というものは、投稿プログラムのコーナーが紙面の1/3を占めていて、ロータス123とそれを使える機種以外興味がなかった両親はほとんど開かなかった。
我が家に新しくやってきたPC8801だか9801に僕が一本指タイプで写経する教材となり一か月に1つくらい写経した。
両親はロータス123を使いこなすことができず、(というよりMSDOSでつまづいたと言ってた気がする)
何十万もする高価な箱を自分が占有する形になったが、ゲームが買い与えられたわけでもなく、BASICだけだったらMSXでこと足りたので、楽しいマシンという記憶はない。
そんなこんなののち、1年くらいでBASICの熱は冷めた。
パソコンに自分から触れる機会はその後の人生でほとんどなかった。
卒論や、就職してからの業務でWordとパワポ、Excelの簡単な使い方を覚えたが、
ひょんなことでExcelでIF関数に再開し、懐かしさからいろいろとExcelの関数を使い倒してみた。
ついでにと、本屋でExcelマクロ作例集というものを買ってきて、家で読んでる。
家にパソコンがあれば昔のように写経するのだが、コードの解説を読んで脳内で動きを想像して楽しむことしか出来ない。
この程度なら自分でもすぐ書けそうという反面、仕事に役立てそうなことはあまりない。
再帰にするとわかりにくいったらないな。
いや配列で扱うならまだいいが関数型言語でリストでやってみるとそれはひどいことになる。配列の値をちまちま変えながらやるのが最適な方法なのでそれが遅いわけだが、関数語型言語のデフォであるimmutableなオブジェクトでやろうとするとごにょごにょしすぎてわかりやすさがどこかへいってしまうしmutableなオブジェクトと代入を使うとそれはそれで関数型言語的にキモくなる。そもそもソート全般が副作用っぽいので相性悪いのだろう。探索みたいな読み込みだけなら問題ないはず。haskellが注目されたときあのクイックソートが有名になったわけだがバブルソートの複雑化が注目されるわけがない。
なぜバブルソートか?
バブルソートは教育用であり実践じゃ使わない、で切り捨てる人もいるがあまりにも人間味がなさすぎる。アルゴリズムのハローワールドの地位でもって扱うべき。しかし関数型言語畑からいい声は聞こえないだろう。
プログラミング言語はあくまで言語だから、英語に得意不得意があるように適正はあるよ。
単なるコミュニケーションの一種、特に命令に特化した言語だと考えると、ランダムな数列を並び替えろ、をひとつひとつ分解して日本語でかければそれを機械語に翻訳するだけだ。
これを機械語に訳すんだ。
和英翻訳と違うのは上のような手続きを自分で分解しなきゃいかんことで、このへんでつまづくことも多いんじゃないかな。
例え適正がないと感じても、芸術家以外の仕事をする場合には、何をどうしたい、何がどういう状況だ、ということを伝えることは大事だよ。
機械語翻訳はできなくても、おおまかにどうしたいのか、どうすればいいのか、を考える力は養っておいたほうがいい。と、老婆心を出してみる。