- 1 名前:名無しのプログラマ [2015/08/09(日) 17:46:33.69 ID:Icb40LOY.net]
- for,while使うの嫌いで基本的に再帰多用するんだが、だめなの?
皆から敬遠されてる気がする
- 513 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 05:07:16.18 ID:CDX3RzQS.net]
- >>500
ぼけ! まだ書き直してねえじゃねえか。 さっさと1処理毎のメモリ確保解放をしない ループ処理の通常版に直せ。 これを知らんのはお前が病的な世界にいるからだ。
- 514 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 07:31:12.39 ID:pCUEXLgh.net]
- >>501
呼び出しオーバーヘッド削り込む実装しなきゃ ループのほうがはやくはならんよ OSSでもまともなのはそーいう実装になってるよ
- 515 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 07:39:26.46 ID:nL2sda9W.net]
- >>500
> >>474 でみたように,クイックソートのような再帰アルゴリズムをループ処理で記述すると malloc()/new の発生は回避できない 回避できるでしょ? 最初っから必要になる最大メモリを確保すればいいんだよ。 最大がわからないなら、 そのサイズはスタックの最大メモリと同じ量でいい。
- 516 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 07:45:06.17 ID:tWuWD3CH.net]
- >>503
ちゃんと,処理の頭と終わりで malloc()/free() するだけの構造にしたよ ニ方向に再帰するクイックソートで,処理中にスタックに出し入れするから, その分の malloc()/free() を使うのは不可避 >>504 まあそういうことだ‥ このスレのはじめのほうでは再帰のオーバーヘッドはかなり高いことになっていたが, 実はそうでもない
- 517 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 07:45:54.80 ID:tWuWD3CH.net]
- >>505
>スタックの最大メモリ ってなんだい?C で説明してくれ
- 518 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 08:06:15.93 ID:CDX3RzQS.net]
- >>506
>ニ方向に再帰するクイックソートで,処理中にスタックに出し入れするから, >その分の malloc()/free() を使うのは不可避 その分の malloc()/free() を使うなボケ 処理毎のメモリ確保解放をしないのが業界標準だ 極端に低レベルなコードを作り出してソートを語るな
- 519 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 09:03:59.69 ID:nL2sda9W.net]
- >>507
スタックオーバーフローしたときの スタックで使用しているメモリ量のことだよ。
- 520 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 15:30:14.05 ID:3EJSkE06.net]
- 続くねぇ。このページで終わる話じゃないの?
https://ja.wikipedia.org/wiki/分割統治法
- 521 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:04:00.33 ID:1FIsj9f5.net]
- 再帰を使えば分かりやすく書ける
ループを使えば高速化できる トレードオフなだけだよね 高速化が必要ならループ使えばいいし、そうでもないなら再帰で分かりやすく書けばいい 前提条件がないのにどっちがいいとか決められる話じゃない
- 522 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:57:30.21 ID:tWuWD3CH.net]
- >>511
その常識を覆す結果,すなわち ・再帰を使うほうが全般的に軽い, ・ループは分かりやすくない上におもったより重い という結果が出ているんだよ
- 523 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 21:01:56.66 ID:nL2sda9W.net]
- >>519
訂正 再帰を使えば分かりやすく書けることもある。 ループを使ったほうがわかりやすいことも有る。 ループを使えば高速化できる。
- 524 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 21:27:00.60 ID:CDX3RzQS.net]
- >>512
そんなバカ言ってるのはお前だけ。 さっさと世間で使われているクイックソートのアルゴリズムがどうなっているのか学習しろ。 このスレでさんざん多くのレスで非難されているのに、現実を理解できないお前は重病。
- 525 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 00:24:39.98 ID:D5iVdV3D.net]
- クイックソートをピュアに実装する事ってなくって
分割で要素数減ったら別アルゴに切り替えるでしょ だから関数呼び出しのオーバーヘッドの影響が小さくなるのよ それもデータ多いと遅いから ミッションクリティカルに大量のソート回す場合は パラのradixマージじゃないのか おれはこう思ってたんだけど俺の認識間違ってる?
- 526 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 02:53:00.07 ID:rEYgAb/R.net]
- >データ多いと遅いから
まともなループ版
- 527 名前:のクイックソート使えばいいのに []
- [ここ壊れてます]
- 528 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 03:36:13.50 ID:4wYo+P+Y.net]
- >>514
クィックソートするのに,データ数の前提をたててその分のメモリを先に確保するのか? それが世間でやっていることなのか? Cのライブラリ関数 qsort() で行われていることなのか?
- 529 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 03:40:39.00 ID:zsRIAfpU.net]
- 二つのメモリ内容の
入れ替えしか行ってないのに、 なんで別にメモリを確保しなきゃいかんのだ?
- 530 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/27(木) 03:48:48.52 ID:oqQcnINP.net]
- 二重再帰のお題:
int f(int x,int y) { if (x > 0)return f(x-1,y)-1; if (y > 0)return f(x+1,y-1)+3; return 1; } さて、f(3,8)はいくつ?
- 531 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/27(木) 03:52:04.42 ID:oqQcnINP.net]
- 再帰は人工知能と関係がある。
- 532 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 10:07:26.43 ID:1OqAD7+d.net]
- 再帰は人工知能の研究のためのもの
ソースコードとその処理結果の組み合わせを見るもの 実用的なプログラミングにはC++とか他の言語を使う
- 533 名前:デフォルトの名無しさん [2015/08/27(木) 23:36:19.60 ID:3Gk4Wjfj.net]
- 2週間くらい見てなかったけどずいぶんまともになったね。
MISRA-C だの 2chコーディング規約だのと叫んでた人達はどこに行ったの? >>517 gcc qsort.c でググれば出てくるから見てみたらどうかな。
- 534 名前:デフォルトの名無しさん [2015/08/27(木) 23:44:42.40 ID:3Gk4Wjfj.net]
- ごめん、間違えた。URL 書くよ。>>163 に書かれてるのと同じだけど。
https://github.com/lattera/glibc/blob/master/stdlib/qsort.c
- 535 名前:デフォルトの名無しさん [2015/08/28(金) 00:07:34.86 ID:X6i2EJ+K.net]
- glibc qsort.c
でググればいいらしい。
- 536 名前:デフォルトの名無しさん [2015/08/28(金) 01:56:03.91 ID:5JQ0ubd6.net]
- クイックソートは問題を分割して各々を解くだけだからループでも簡単なんだよ。
再帰処理をループにしても読みにくくならないって言う人は、竹内関数を再帰呼び出し無しで書いてみること。 書けない人は議論に参加する資格無し。
- 537 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 02:00:35.89 ID:k07is2fO.net]
- 竹内関数は実際には使われないので何とも
実際にもっとも使われるデータ構造は配列です 配列のループに再帰を使うのはナンセンスです
- 538 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 05:01:09.44 ID:Ox2JHydA.net]
- >>525
まだ勘違いしてるの? ループでも簡単なものを わざわざ再帰で書くんじゃねーよって 話をしてるんだが。
- 539 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 06:01:37.78 ID:uG+DCu7f.net]
- >>522
man ばかりでてくるんだけど‥
- 540 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 10:15:07.18 ID:McJH/vOC.net]
- ループでも簡単なものを
わざわざ実用性のない再帰で書く 再帰キティ害は、どこまで病的なんだか・・
- 541 名前:デフォルトの名無しさん [2015/08/28(金) 21:21:58.14 ID:5JQ0ubd6.net]
- >>527
ループで簡単に書ける問題でも 再帰で「もっと」簡単に書けるなら再帰で書くよ
- 542 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:27:38.78 ID:McJH/vOC.net]
- >>530
脳みそ腐ってる 再帰のベンチマークでいつまでも遊んでろ
- 543 名前:デフォルトの名無しさん [2015/08/28(金) 21:30:07.36 ID:5JQ0ubd6.net]
- >>531
GOTOで簡単に書ける問題でも関数使うのと同じだよ
- 544 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:33:32.50 ID:k07is2fO.net]
- もっともよく使うデータ構造は配列です
配列のループに再帰を使うのはナンセンスです
- 545 名前:デフォルトの名無しさん [2015/08/28(金) 21:35:35.21 ID:5JQ0ubd6.net]
- もっともよく使うデータ構造は木です
木の探索にループを使うのはナンセンスです
- 546 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:35:43.99 ID:p8e2JvhL.net]
- リンクリストを使った方が簡単になるならそうするよね
- 547 名前:デフォルトの名無しさん [2015/08/28(金) 21:36:22.40 ID:5JQ0ubd6.net]
- 1+2*3+4*5-6/7*8+9*10
木です
- 548 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:37:14.01 ID:k07is2fO.net]
- 木構造よりも配列の方がよく使います
- 549 名前:デフォルトの名無しさん [2015/08/28(金) 21:38:08.70 ID:5JQ0ubd6.net]
- >>537
それは単価の安いエンジニアだからです
- 550 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:38:50.59 ID:p8e2JvhL.net]
- 何でもかんでも配列を使う方がどうかしてる
問題によってデータ構造を選ぶのが適切
- 551 名前: []
- [ここ壊れてます]
- 552 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:39:52.00 ID:k07is2fO.net]
- >1+2*3+4*5-6/7*8+9*10
>木です これの面白い点は、 通常パーサで再帰下降型など再帰が使われることは無いということです
- 553 名前:デフォルトの名無しさん [2015/08/28(金) 21:42:13.29 ID:5JQ0ubd6.net]
- gotoが使われます
- 554 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:43:36.30 ID:k07is2fO.net]
- なんでも配列を使うとはいっていません
もっともよく使われるデータ構造は、配列だと言っているだけです もっともよく使われるデータ構造である配列のループに 再帰を使うのはナンセンスです 配列を良く使うことと、ループ分を良く使うことは、同義と言って良いでしょう 配列はよく使われるので、ループも良く使われます
- 555 名前:デフォルトの名無しさん [2015/08/28(金) 21:46:23.84 ID:5JQ0ubd6.net]
- 配列が命令を格納したものなら通常はgotoで飛びます。ループのようなオーバーヘッドの大きな処理は使われません
- 556 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:48:29.35 ID:3pAHpuiu.net]
- 1+2*(3+4*(5-6))/7*(8+9)*10!
- 557 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:58:33.93 ID:k07is2fO.net]
- 一般的にプログラムでもっともよく使われる構造的なデータといえば、文字列でしょう
文字列の表現には配列が適しています つまり、配列はとても沢山使われるということです 配列の操作にはループ文が適しています 配列で表現された文字列に対して、 strlenなどの文字列操作を再帰で実装するのはナンセンスです つまり、ループ文はとても沢山使われるということです
- 558 名前:デフォルトの名無しさん [2015/08/28(金) 22:03:28.46 ID:5JQ0ubd6.net]
- 一行目が違います
- 559 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:23:58.40 ID:bBNOiFa3.net]
- >>546
正しくはなに?
- 560 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:01:39.79 ID:p8e2JvhL.net]
- >>542
ちなみにScalaとかでは配列を使うのはパフォーマンスを求めるときぐらい ふつうに順序づけられた集合を表すのはList(という名のリンクリスト)だよ
- 561 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:10:55.11 ID:bBNOiFa3.net]
- Scalaというよく使われない言語を持ってこられても困るよなw
- 562 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:14:12.40 ID:p8e2JvhL.net]
- え?よく使われてるよ?
Twitterとか、日本でもドワンゴとかね
- 563 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:14:42.73 ID:bBNOiFa3.net]
- それ以外では使われてない。
- 564 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:15:03.90 ID:cjHddNQ+.net]
- お前らはLispを書かんのか?
業務でぇとか、しみったれたこと言うなよ。
- 565 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:15:34.96 ID:bBNOiFa3.net]
- 業務以外なら書くよ。
- 566 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:19:28.80 ID:p8e2JvhL.net]
- 他にもいっぱい使われてるよ
ちょっと調べれば出てくる
- 567 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:25:39.66 ID:cjHddNQ+.net]
- Lisp書くなら、配列の何とも言えない不自由さに辟易しているのでは?
ただしループは認める。やはりスタックが...
- 568 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:32:38.56 ID:bBNOiFa3.net]
- >>554
githubのランキングを見たが少なかったぞ。 そんなデータ信用できねーよと言うのなら、 それはそれでいいが、それなら君が信用できて 誰でも検証可能なデータを示すべきだ。
- 569 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 23:48:40.83 ID:k07is2fO.net]
- 配列はランダムアクセスが出来て便利
リンクリストはランダムアクセスが出来ないので不便 なので、配列の方が、より、汎用性のあるデータ構造といえます 使い勝手のいいデータ構造を採用する事は、可読性に繋がります 一般に配列は、挿入、削除、リサイズが遅いとされていますが、 単に、そういう風に対立構造にして、場合に応じて使い分ける風に言ったほうが、 かっこいいから、そう言っている、というだけです 例えば、クリエイティブならMac、という紹介文章みたいなもんです リンクリストにも華を持たせてあげましょう、というだけです 配列の挿入、削除、リサイズは、そこまで遅いわけではありません memcpy memmoveはカリカリにチューニングしてあり、とても速いです CPUのキャッシュに乗りやすい処理であるのもポイントです 最近のPCのメモリ帯域を確認してください 対して、リンクリストのランダムアクセスは、とても重いです CPUのキャッシュに乗りにくい処理です
- 570 名前:デフォルトの名無しさん [2015/08/29(土) 00:15:20.73 ID:hP/roqxQ.net]
- いつから配列のリサイズが重くなくなったんだw
- 571 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:41:01.81 ID:bUE2FMpc.net]
- メモリ確保・解放の重さは、回数が問題
処理中にメモリ確保・解放しまくるデータ構造は、
- 572 名前:とんでもなく重い。 []
- [ここ壊れてます]
- 573 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:44:15.53 ID:haT66cVy.net]
- スタックとか関数呼び出しのために
メモリ確保・解放してるからなぁ。
- 574 名前:デフォルトの名無しさん [2015/08/29(土) 00:52:02.37 ID:abZzEG6q.net]
- プログラム関係について語り合うならBeLongs!がおすすめ。
よかったら、「blngs」で検索してみて!
- 575 名前:デフォルトの名無しさん [2015/08/29(土) 02:02:43.87 ID:TLrhTEkt.net]
- >>559
せやろか? 俺の経験では処理の遅さはメモリ確保の回数よりも メモリのサイズに比例する。
- 576 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:06:54.96 ID:g5UyIGYz.net]
- 俺の経験では、
処理の重さはメモリ「開放」の回数に比例する 無論C/C++のfree/deleteの話だが
- 577 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:32:09.50 ID:haT66cVy.net]
- メモリ確保って言っても律儀に
指定したメモリを毎回確保・解放してるわけじゃないからな。 ある一定サイズをどかんと確保して、 ちょこちょこ割り当てて使用している。
- 578 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:45:20.83 ID:g5UyIGYz.net]
- ドカンと確保せず、毎回OSのページサイズ単位で確保した方が早い
WindowsならVirtualAlloc これは速い mallocなどドカンと確保して、ちょこちょこ割り当てる、これが全く重い 正確には割り当てるのは速い 解放がとてつもなく遅い
- 579 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 03:55:56.31 ID:VNb5NXe3.net]
- メモリの確保/解放を考える時点でなんか違うよ
もちろん、そこまで考えなきゃいけない分野はあるし、そういう分野で再帰を使うのは間違ってると 思うけど、一般の人間はそこまで考えなくていいからね
- 580 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 06:20:13.75 ID:sPvi53Zp.net]
- メモリの確保/解放を考えないなんてもう論外。
プログラマとしてまともな仕事を扱うこともなく 任されることもない、 いい加減なコードを書くだけで信用も期待もされない。 これ一般じゃあない。
- 581 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 06:48:33.39 ID:e0Hg3/HL.net]
- 配列などない
ポインタがあるだけだ
- 582 名前:デフォルトの名無しさん [2015/08/29(土) 06:54:58.07 ID:hP/roqxQ.net]
- 世の中にはC言語以外の言語もあるのよ
- 583 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 13:05:13.99 ID:VNb5NXe3.net]
- >>567
そこまで考えなきゃいけない分野があるのは事実だが、それをマニュアルでやる分野はレア マニュアルでやってたら絶対バグるから、モダンな言語にはガベージコレクタなどの技術が 採用されてるんだしね
- 584 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 13:57:09.93 ID:7eeJLuGb.net]
- >>531 ワロタ。お前道具もまともに使えない社畜だな、もう別のとこ行くか、黙ってみてろ
- 585 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 17:10:01.35 ID:g7aWBHc9.net]
- 別に再帰だから再帰じゃないからなんだって思うが
- 586 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 18:43:39.65 ID:g7aWBHc9.net]
- >>568
アドレス演算≠ポインタ演算
- 587 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 14:09:15.19 ID:PCX+Z6xE.net]
- >>559
calloc?…
- 588 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 14:09:53.80 ID:PCX+Z6xE.net]
- >>574
ごめんなさい誤爆しました
- 589 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 01:14:01.81 ID:t91IYFQ3.net]
- >>542
いやいや スクリプト言語だと配列という名前でもハッシュだったりするし 最近は配列を多用するのはc/c++(c++あんま知らんけど)くらいだと思うんだけど javaでもなるべくコレクション使うようにするし
- 590 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 01:16:56.25 ID:t91IYFQ3.net]
- 配列はデータの追加や削除の効率が悪いデータ構造だし
immutableに向いてないからキツイ
- 591 名前:デフォルトの名無しさん [2015/09/01(火) 02:05:52.14 ID:DJMTd98b.net]
- "スタックオーバーフロー" "クイックソート" site:.ac.jp
でググったら、とっても残念なページを見つけてしまった。 素人ならまだしも、T 大学の N 先生、あなたがそんなことじゃだめでしょう。 クイックソートがスタックオーバーフローするのは recursive call のせいではありませんよ。
- 592 名前:デフォルトの名無しさん [2015/09/01(火) 02:14:07.76 ID:6K59ZHF3.net]
- >>577
その人、たぶん、なんでデータの追加や削除の効率が悪いのかもわかってないのでは、と。
- 593 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:08:24.61 ID:ucFEbRDO.net]
- >>577
その人、たぶん、配列=メモリに連続して固定長のデータが並んでいるもの それ以外は認めない。という間違った考え方をしてる。
- 594 名前:デフォルトの名無しさん [2015/09/01(火) 03:11:38.75 ID:Uqk8gU8P.net]
- >>578
recursive call のせいですよ
- 595 名前:デフォルトの名無しさん [2015/09/01(火) 03:12:23.69 ID:Uqk8gU8P.net]
- >>580
間違ってないですよ
- 596 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:14:38.29 ID:ucFEbRDO.net]
- >>582
やっぱり固定長データが連続で並んでるものしか 認めないと思ってるのかw 明らかに間違ってるぞ。 C言語以外の言語の話をしようか?
- 597 名前:デフォルトの名無しさん [2015/09/01(火) 03:29:20.63 ID:6K59ZHF3.net]
- 連続じゃなくてもいいけど(しかもハッシュじゃなく)アクセスがO(1)な
アドレスマッピングの方法を使ってる言語なんかあるの?
- 598 名前:デフォルトの名無しさん [2015/09/01(火) 03:29:25.49 ID:Uqk8gU8P.net]
- >>583
C言語以外じゃないと都合が悪いのか? じゃあC言語でお願いします
- 599 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:30:24.33 ID:ucFEbRDO.net]
- >>585
あ、C言語限定じゃないと困るんだw
- 600 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:07.57 ID:Uqk8gU8P.net]
- >>586
はい、基本C言語でお願いします よろしくお願いいたします 配列=固定長データが連続で並んでる これでいいですね
- 601 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:28.71 ID:Uqk8gU8P.net]
- ふぅ、論破完了
- 602 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:41.75 ID:6K59ZHF3.net]
- 単に「配列」って名前の付いてるハッシュの話してるんじゃないかと思う。
そしてそれは(データ構造としての)配列ではない。
- 603 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:33:05.52 ID:C9NG6GGp.net]
- 配列は抽象化されていないデータ構造なのか?
否 真にそう言えるのは1ビットのみである
- 604 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:40:53.92 ID:ucFEbRDO.net]
- >>587
C言語においては、配列は固定長データが連続で並んでる。 その他の言語ではそうとは限らない だから"配列"だけで断定することは出来ない。 これでいいですよ。
- 605 名前:デフォルトの名無しさん [2015/09/01(火) 03:44:11.25 ID:Uqk8gU8P.net]
- >>591
C言語はプログラム言語です つまり、プログラムにおいて配列とは固定長データが連続で並んでるものなんです
- 606 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:07:30.08 ID:ucFEbRDO.net]
- わかりやすく言うと
プログラム言語 というカテゴリの中に ・C言語 ・Perl ・PHP ・Ruby ・その他 などが含まれます。 その中で、C言語では配列とは固定長データが連続で並んでるものなんです
- 607 名前:デフォルトの名無しさん [2015/09/01(火) 04:14:14.53 ID:Uqk8gU8P.net]
- >>593
C言語以外では困るのでC言語でお願いしますと言いました。 いいですか、私はC言語以外では困るんです。 あなたは私を困らせたいのですか?困らせたくないでしょう。 私に同情してください。 配列=固定長データが連続で並んでる これでいいですね。
- 608 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:19:55.14 ID:C9NG6GGp.net]
- >>593
スクリプトだらけなんだが…
- 609 名前:デフォルトの名無しさん [2015/09/01(火) 04:24:44.91 ID:6K59ZHF3.net]
- つうか、C言語のもの以外それみんな名前が「配列」なだけのハッシュ…
- 610 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:33:56.34 ID:ucFEbRDO.net]
- 配列の実装がハッシュなだけ。
配列だからって、実装まで決まらない証拠。
- 611 名前:デフォルトの名無しさん [2015/09/01(火) 04:37:44.81 ID:Uqk8gU8P.net]
- >>597
ふうむ、たとえば二分探索木の実装に赤黒木やスプレーツリーがあるように データ構造にも抽象的なものとより具体的なものがあるわけっしょ。 つまり、抽象データ構造としての配列とより具体的なデータ構造としての配列があり、 抽象データ構造としての配列に連想配列が含まれ、より具体的な連想配列のデータ構造として ハッシュテーブルがあるってことでしょね。
- 612 名前:デフォルトの名無しさん [2015/09/01(火) 04:57:20.77 ID:6K59ZHF3.net]
- データ構造についての普通の教科書読めば
そういう緩い意味で「配列 array」は使わないことがわかるよ。
- 613 名前:デフォルトの名無しさん [2015/09/01(火) 04:58:46.51 ID:6K59ZHF3.net]
- array data structureとarray data typeとの区別をつけようね。
|

|