並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 92件

新着順 人気順

データ構造の検索結果1 - 40 件 / 92件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

データ構造に関するエントリは92件あります。 プログラミングデータアルゴリズム などが関連タグです。 人気エントリには 『東工大が無料公開しているPython解説サイト初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。基本的な文法、データ構造、ファイル入出力やオブジェクト指向、NumpyとMatplotlibの使い方などをひと通り学べる。』などがあります。
  • 東工大が無料公開しているPython解説サイト初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。基本的な文法、データ構造、ファイル入出力やオブジェクト指向、NumpyとMatplotlibの使い方などをひと通り学べる。

    QDくん⚡️AI関連の無料教材紹介 @developer_quant 金融技術職/ChatGPT等の生成AI,機械学習,データサイエンス,プログラミングの勉強に役立つ情報を発信/良質な無料教材,スライド,動画,サイトを紹介/金融工学x機械学習ブログ運営700記事 quantcollege.net /C++/Python/Julia/Rust/Amazonアソシエイト参加中 note.com/quantdeveloper QDくん⚡️AI関連の無料教材紹介 @developer_quant 東工大が無料公開しているPython解説サイト chokkan.github.io/python/index.h… 初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。 基本的な文法、データ構造、ファイル入出力やオブジェクト指向、NumpyとMatplotlibの使い方などをひと通り学べる。

      東工大が無料公開しているPython解説サイト初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。基本的な文法、データ構造、ファイル入出力やオブジェクト指向、NumpyとMatplotlibの使い方などをひと通り学べる。
    • はじめに - アルゴリズムとデータ構造大全

      はじめに このドキュメントは,主に競技プログラミングで出題される問題を解く際に利用できるアルゴリズムやデータ構造をまとめたものです.特定の問題にはあまりフォーカスしないため,問題を解く際の考察の仕方等の内容はありません.詳しく,正確に,分かりやすく書いていこうと思っています. このドキュメントは執筆途中です. 想定する読者 C++を用いたプログラミングに慣れている方を読者として想定しており,C++言語の仕様や,文法にはあまり触れません.また,計算量という用語についても説明しません.ただし,償却計算量など,計算量の見積もりが複雑なものについては必要に応じて説明します. コードについて このドキュメントで登場するコードは,可読性向上のため,以下のようなコードがファイルの先頭に記述してあることを前提としています.また,適切な問題を用いてコードの検証がなされている場合は,コード周辺にのように,検証

      • Shota Imai@えるエル on Twitter: "コンピュータサイエンスで有名なアルゴリズムのPython実装を大量に公開しているリポジトリ https://t.co/379T4izBle 教養レベルのデータ構造やアルゴリズムから機械学習やブロックチェーン,Web関連などの応用ま… https://t.co/vSmYZW5SHw"

        コンピュータサイエンスで有名なアルゴリズムのPython実装を大量に公開しているリポジトリ https://t.co/379T4izBle 教養レベルのデータ構造やアルゴリズムから機械学習やブロックチェーン,Web関連などの応用ま… https://t.co/vSmYZW5SHw

          Shota Imai@えるエル on Twitter: "コンピュータサイエンスで有名なアルゴリズムのPython実装を大量に公開しているリポジトリ https://t.co/379T4izBle 教養レベルのデータ構造やアルゴリズムから機械学習やブロックチェーン,Web関連などの応用ま… https://t.co/vSmYZW5SHw"
        • PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記

          PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 本稿では3言語の連想配列の従来実

            PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
          • 『みんなのデータ構造』でデータ構造の基礎を学んだ - valid,invalid

            データ構造とアルゴリズムの学習の一環として『みんなのデータ構造』を読んだ。これまでで最も良いデータ構造の学習になった。 みんなのデータ構造 作者:Pat Morin発売日: 2018/07/20メディア: 単行本(ソフトカバー) 日本語訳がWebで公開されているので気になる方は無料で読める。が、著者や訳者や出版社応援の意味も込めて購入すると良いと思います。また、ラムダノート社のサイトから買うと紙書籍と電子書籍のセットがお得。 内容 データ構造とアルゴリズムに関連する本はアルゴリズム寄りのものが多いが、データ構造に焦点を当て続けていることが本書の特色。 内容の依存関係 p.21より 大学の教科書のように、正確性を優先したハードコアな内容。 アルゴリズムの内容も少しだがある。「11章 整列アルゴリズム」ではそれまでの章で学んだデータ構造がどのように使われるかを一瞥でき、「12章 グラフ」では深

              『みんなのデータ構造』でデータ構造の基礎を学んだ - valid,invalid
            • コンピュータサイエンスで1冊ずつ本を上げるとしたら何になりますか?就職前にバイブル的な本を勉強したいと思いました。 -コンピュータアーキテクチャ -データベース -os -アルゴリズムとデータ構造 -セキュリティ -ネットワーク -プログラミング -仮想化技術 | mond

              大学の情報工学科に入学時に教科書として指定されたいわゆるパタへネを推します。 コンピュータの構成と設計 第5版 CPUの構造と基本は現代ではかなり複雑になりましたがこの本に書かれている基本を知っているかどうかで込み入った問題にぶち当たった場合の解像度が違います。 由緒正しいDBの読本というとオンラインで読めるRedbookとなりそうですがここは敢えて データ指向アプリケーションデザイン いわゆるイノシシ本を推します。名前からしてアプリケーションの話のように見えますし、分散システムに関する話が多いのですが最終章まで通して読むと「アプリケーションとデータベースの境界とは本来存在せず、入力されたデータを『いつ』『いかに』『安全に』加工・保存・出力するかがアプリケーションであり、その目的に対する最善手をフラットに考えるとある意味でアプリケーション全体が既にひとつのデータベースであってその仕事の一部

                コンピュータサイエンスで1冊ずつ本を上げるとしたら何になりますか?就職前にバイブル的な本を勉強したいと思いました。 -コンピュータアーキテクチャ -データベース -os -アルゴリズムとデータ構造 -セキュリティ -ネットワーク -プログラミング -仮想化技術 | mond
              • テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum

                テキストエディタのデータ構造 Gap method Piece Table method Piece Table の構造 Piece Table の実装 Piece Table のメソッド まとめ テキストエディタのデータ構造 テキストエディタで採用されているデータ構造にはいろいろあります。 こちらの論文 Data Structures for Text Sequences では各種データ構造について比較検討されています。 多くは、Gap method や Piece table method をベースにしたものが多いのではないでしょうか(図で言う最下部の中心の丸印に当たります)。最近では Rope なども有名ですね。 Gap method Gap method では、現在のカーソル位置で、テキストバッファを2つに分割し Gap を間に挟み、カーソル位置に対する編集(テキスト追加/削除)を

                  テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum
                • 圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案

                  広島大学は8月31日、富士通研究所と共同で、多くのデータ圧縮方式で採用されている「ハフマン符号」の並列展開処理を高速化する新しいデータ構造「ギャップ配列」を考案したことを発表した。NVIDAのGPU「Tesla V100」を用いて実験した結果、従来の最速展開プログラムと比較して、2.5倍から1万1000倍の高速化を達成できたとしている。 同成果は、同大学大学院先進理工系科学研究科の中野浩嗣教授らの共同研究チームによるもの。詳細は、2020年8月に開催された国際会議「International Conference on Parallel Processing (ICPP)」において発表され、269件の投稿論文の中から最優秀論文賞に選ばれた。 インターネットを介して多数の画像ファイルや動画ファイルなどを転送したり、また記録メディアに保存したりする際、データの圧縮は誰でも日常的に行っている。そ

                    圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案
                  • 法律のデータ構造と検索

                    デジタル庁は、法令標準 XML スキーマに準拠した、現行の法令データをe-Gov法令検索というサイト上で公開しています[1]。今回、この法令XMLをパースするPythonライブラリ ja-law-parser をつくり、法令データの全文検索をしてみました。 この記事では、日本の法令とそのデータ構造、法令XMLパーサについて解説し、最後に、それらを使った法令データの全文検索システムを実装する方法をご紹介します。法令検索の実装についても、GitHubリポジトリで公開しています。 この記事は、情報検索・検索技術 Advent Calendar 2023の16日目の記事です。 法律と法令 法律とは 法律の制定と公布 法律と法令の違い 法律の改正 法令のデータ構造 e-Govの法令データ 法令標準XMLスキーマ 法令番号と法令ID 題名 本則と附則 条・項・号 編・章・節・款・目 法令XMLパーサ:

                      法律のデータ構造と検索
                    • 二分木 - Rustではじめるデータ構造とアルゴリズム(第1回)

                      Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。 しかし一方で、自分で多少複雑なデータ構造を定義しようとする場合にはコンパイルを通すだけでもかなりの知識・力量が要求されます。 この(不定期)連載では、 Rustではじめるデータ構造とアルゴリズム と題し、プログラミングコンテストなどでよく見かける基礎的なデータ構造とアルゴリズムを、できるだけシンプルにRustで実装していきます。 &, &mut, Box, Rc, Cell, RefCell などの使い分けや、なぜそれを使う必要があるかの解説を、実例を通して行います。 第1回は、最もシンプルな木構造である 二分木 を

                        二分木 - Rustではじめるデータ構造とアルゴリズム(第1回)
                      • コンピュータサイエンスで1冊ずつ本を上げるとしたら何になりますか?就職前にバイブル的な本を勉強したいと思いました。 -コンピュータアーキテクチャ -データベース -os -アルゴリズムとデータ構造 -セキュリティ -ネットワーク -プログラミング -仮想化技術 | mond

                        mondでこの質問への回答を読んでみましょう

                          コンピュータサイエンスで1冊ずつ本を上げるとしたら何になりますか?就職前にバイブル的な本を勉強したいと思いました。 -コンピュータアーキテクチャ -データベース -os -アルゴリズムとデータ構造 -セキュリティ -ネットワーク -プログラミング -仮想化技術 | mond
                        • 二分探索木 - Rustではじめるデータ構造とアルゴリズム(第2回)

                          Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。 しかし一方で、自分で多少複雑なデータ構造を定義しようとする場合にはコンパイルを通すだけでもかなりの知識・力量が要求されます。 この(不定期)連載では、 Rustではじめるデータ構造とアルゴリズム と題し、プログラミングコンテストなどでよく見かける基礎的なデータ構造とアルゴリズムを、できるだけシンプルにRustで実装していきます。 &, &mut, Box, Rc, Cell, RefCell などの使い分けや、なぜそれを使う必要があるかの解説を、実例を通して行います。 今回第2回では、 二分探索木 を取り扱います。値

                            二分探索木 - Rustではじめるデータ構造とアルゴリズム(第2回)
                          • QDくん⚡️Python x 機械学習 x 金融工学 on Twitter: "東工大が無料公開しているPython解説サイト https://t.co/lbgZ0htjou 初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。 基本的な文法、データ構造、ファイル入出力やオブジェクト指向、Num… https://t.co/SdGpbaVAlx"

                            東工大が無料公開しているPython解説サイト https://t.co/lbgZ0htjou 初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。 基本的な文法、データ構造、ファイル入出力やオブジェクト指向、Num… https://t.co/SdGpbaVAlx

                              QDくん⚡️Python x 機械学習 x 金融工学 on Twitter: "東工大が無料公開しているPython解説サイト https://t.co/lbgZ0htjou 初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。 基本的な文法、データ構造、ファイル入出力やオブジェクト指向、Num… https://t.co/SdGpbaVAlx"
                            • 森羅万象に「いいね」するためのデータ構造

                              Kaigi on Rails 2022 にて『森羅万象に「いいね」するためのデータ構造』の発表をしました。 https://kaigionrails.org/2022/talks/pndcat/ ===概要=== サービス開発をしていると「いいね」の実装に対面することは多いでしょう。例えば EC サービスの場合、商品へのいいね、クチコミへのいいね、ブランドへのいいねなど、いろいろな対象に「いいね」をするケースが考えられます。さらには、ログインユーザーの「いいね」と、非ログインユーザーの「いいね」を作ることもあるかもしれません。 しかし、あらゆるものに「いいね」できるシステムを作るのは容易ならざることです。普通に実装するだけでは関連するコードは肥大化し、データベースのテーブルもどんどん増えていくばかりです。 似ているけど少し違う「いいね」を実装するにあたって、失敗してしまったデータ設計、そこ

                                森羅万象に「いいね」するためのデータ構造
                              • データ分析の前処理を行えるPythonライブラリ「pandas」、最も基本的なデータ構造「シリーズ」を解説

                                機械学習やデータ分析には、収集したデータを使いやすい形に整える前処理が不可欠です。その際によく利用されるのがPythonのライブラリ「pandas」。今回は『現場で使える!pandasデータ前処理入門』(翔泳社)より、pandasの最も基本的なデータ構造であるシリーズの概要と操作方法について抜粋して紹介します。 本記事は『現場で使える!pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法』の「CHAPTER 2 pandasのデータ構造」より「2.1 シリーズ」を抜粋したものです。掲載にあたり一部を編集しています。 2.1.1 シリーズの概要 シリーズはインデックス付けされた複数のデータ型(int、str、float等)を持つことが可能な1次元配列のオブジェクトです。 インデックスとはデータに対して付与されるラベルです。データの参照や様々な処理で使われます。インデック

                                  データ分析の前処理を行えるPythonライブラリ「pandas」、最も基本的なデータ構造「シリーズ」を解説
                                • 問題解決力を鍛える!アルゴリズムとデータ構造 大槻 兼資(著/文) - 講談社

                                  紹介 ◆2万部突破のベストセラー!みんな読んでる!◆ ◆「 ITエンジニア本大賞2021 特別賞」受賞◆ 競技プログラミング経験が豊富な著者が、「アルゴリズムを自分の道具としたい」という読者に向けて執筆。入門書を標榜しながら、AtCoderの例題、C++のコードが充実。入門書であり実践書でもある、生涯役立つテキストを目指した。 【推薦の言葉】 プログラムが「書ける」ことと、効率の良い結果を得ることには大分ギャップがある。本書は、どのようにすれば効率のよい結果が得られるか? すなわちどのようなアルゴリズムを採用すればよいか? という点に対して、幅広くかつ明快に解説している。 また本書は、アルゴリズム初心者に対して、アルゴリズムへの興味を惹かれるように記述されている。アルゴリズム上級者への初めの一歩には最適であろう。 ――河原林健一(国立情報学研究所副所長) 【全体を通して、アルゴリズムの設計

                                    問題解決力を鍛える!アルゴリズムとデータ構造 大槻 兼資(著/文) - 講談社
                                  • 蠱惑の楽器たち 33.音楽と電気の歴史9 CDのデータ構造

                                    CDの読取メカニズムについて解説します。CDは1982年に製品化され、今年2022年なので、ちょうど40年経ちました。今となっては古典的ともいえる光ディスク技術ですが、繊細で高度な制御技術の上に成り立っています。 ■ 読取メカニズム概要 ディスクにあるピットを読むために必要な駆動系は赤字の4つになります。各役割は以下のようになります。 ■ フォーカスサーボ 焦点の調整 ディスクは完全な平面ではなく、多少なりとも反っています。そのためピット面は常に上下に揺れます。ディスクの状態にもよりますが0.5mmぐらいの差は出るようですが、読取装置としては1mmぐらいの差は問題なく読めるようになっています。つまりディスクが高速に回転するときは9回転/秒ぐらいの揺れというか、振動になっています。高低差が1mmもあると1秒間に9回もフォーカスを最大限に動かす必要が出てきますが、フォーカスを調整しながら、ピッ

                                      蠱惑の楽器たち 33.音楽と電気の歴史9 CDのデータ構造
                                    • 『みんなのデータ構造』を読んで Rust で実装した - Qiita

                                      「みんなのデータ構造」を Rust で実装してみました。 この記事では、すすめ方、気になったところや躓いたところなどについて書きたいと思います。 実装したもの 実装したものは以下になります。効率などを考えるとunsafeが必須なのかもとも思いましたが、今回は Rust の勉強を兼ねているので、Safe Rust のみで実装してみました。 一応簡単なテストコードも付属しています。(cargo testで試せます)。 Open Data Structures (in Rust) 時々見直したり書き直したりもしていますが、前半の章よりも後半のほうがより Rust らしくかけているのではないかなと思います。 ちなみに一番うまく実装できたと思うお気に入りのデータ構造は RedBlackTree です。 きっかけ "データ構造とアルゴリズム" の分野に苦手意識があった。 そして、そろそろこれではいけな

                                        『みんなのデータ構造』を読んで Rust で実装した - Qiita
                                      • データ構造とアルゴリズムのカレンダー | Advent Calendar 2019 - Qiita

                                        The Qiita Advent Calendar 2019 is supported by the following companies, organizations, and services.

                                          データ構造とアルゴリズムのカレンダー | Advent Calendar 2019 - Qiita
                                        • Kaigi on Rails 2022 にて『森羅万象に「いいね」するためのデータ構造』の発表をしました - クックパッド開発者ブログ

                                          メディアプロダクト開発部で Rails を書いているなどやま ( @pndcat ) です。業務では、広告基盤の開発、運用から新規サービス開発など、マーケティングソリューション領域に関する開発をしています。趣味は、スプラトゥーンと推し活動をがんばっています。 Kaigi on Rails 2022 にて、森羅万象に「いいね」するためのデータ構造 というタイトルで発表をしました。この記事では、Twitter などで寄せられた質問に回答したいと思います。発表中にあった「いいね」のリファクタリングについてのさらなる詳細については、後日公開する予定です。 After Kaigi on Rails イベントの開催のお知らせ 本日 (10/31) の19時から Cookpad Lounge #15 After Kaigi on Rails を開催します!イベントでは、Kaigi on Rails に登

                                            Kaigi on Rails 2022 にて『森羅万象に「いいね」するためのデータ構造』の発表をしました - クックパッド開発者ブログ
                                          • 広島大学、ハフマン符号の処理を高速化するデータ構造「ギャップ配列」を考案 | スラド デベロッパー

                                            広島大学の中野浩嗣教授らの研究チームは8月31日、GPUによる「ハフマン符号」の並列展開処理を高速化する新しいデータ構造「ギャップ配列」を考案したそうだ(広島大学リリース[PDF]、マイナビ)。 ハフマン符号はJPEGやZIPなど多くのデータ圧縮で使われている符号化方式。NVIDAのGPU「Tesla V100」を用いた実験では、10種類の様々な種類のファイルを用意し、既知の最速プログラムとギャップ配列用に構築したプログラムを用いて比較したという。その結果、従来の展開プログラムと比較した場合、圧縮処理で2.5~7.4倍、また展開処理については、2.5倍から最大1万1000倍もの高速化が達成できたとしている。 ちなみにこの論文は、8月に開催された第49回並列処理に関する国際会議(ICPP)で最優秀論文賞に選ばれたとのこと。

                                            • 転職してデータ構造を把握するためにやったこととツール - Qiita

                                              はじめに これは モチベーションクラウドシリーズ Advent Calendar 2019 11日目の投稿です。 今年の10月にリンクアンドモチベーションへ中途入社して、2ヶ月ちょっとたちました。 久しぶりに関わるサービスが変わったのですが、システム全体を割と細かく理解したいというタイプなので、日々開発しつつ知識を蓄えようと奮闘しています。 オンボーディングでは、インフラ構成を教えてもらったり、マニュアルを読んだり、シナリオテストを実施したり、ソースコードの概要を説明してもらったり・・・色々やってもらいましたが、今回はデータ構造まわりを理解するために自分なりに実施したことについてまとめたいと思います。 データ構造を理解するために、やったことや使ったツール 主要データの構造と関連を把握する 実DBを見たり、ER図だといきなり詳細すぎて、どこから手を付けていいか結構悩みます。 はじめは主要部分

                                                転職してデータ構造を把握するためにやったこととツール - Qiita
                                              • DynamicでScalableな空間分割データ構造Bkd-Tree

                                                社内勉強会資料です。

                                                  DynamicでScalableな空間分割データ構造Bkd-Tree
                                                • 形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog

                                                  SWETの仕様分析サポートチーム所属のtakasek(@takasek)です。 仕様分析サポートチームでは、社内のプロダクト開発に対する形式手法の活用可能性を模索しています。当ブログでも、継続的に形式手法に関する情報発信をしています(形式手法 カテゴリーの記事一覧)。 当記事は、Kuniwak(@orga_chem)により社内開催されたAlloyガイダンスを元に再構成した記事です。よく知られたデータ構造であるStackを形式仕様記述しビジュアライズすることで、Alloyの使い方と利点を実感できます。Alloy未経験者でもステップバイステップで試せるように構成しました。是非、お手元にAlloyをインストールして読み進めてください。環境はAlloy 5.1.0を想定しています。 https://github.com/AlloyTools/org.alloytools.alloy/release

                                                    形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
                                                  • UXの5段階モデル分解編 vol.3 サービス/プロダクトのデータ構造を明確にする構造段階での具体的なデザイン手法【2019年版】|Goodpatch Blog グッドパッチブログ

                                                    2022年追記:最新版記事のご紹介 UXの5段階モデル改めてデザインの5段階モデルとして、より汎用性の高い形で再解釈に取り組んでいます。最新版の記事はこちらからご覧ください。 UXの5段階(5階層)モデルは、サービスやプロダクトがもたらすUXを5つの段階的要素で表したものです。戦略段階から一貫性を持ったサービス/プロダクトの開発を行うためには、このUXの5段階モデルの概念を意識しながら開発することが重要です。 5段階モデルの概念や、各段階での一連のデザイン手法については理解できているが、構造段階の目的やデザイン手法をより詳しく知りたい!という方もいらっしゃると思います。 前回の記事では、要件段階における具体的なデザイン手法の紹介を行いました。今回は次の段階である構造段階において、目的と必要なインプットとアウトプットの説明、そのための具体的なデザイン手法の紹介を行いたいと思います。 UXの5

                                                      UXの5段階モデル分解編 vol.3 サービス/プロダクトのデータ構造を明確にする構造段階での具体的なデザイン手法【2019年版】|Goodpatch Blog グッドパッチブログ
                                                    • なぜGoはDuck typingを採用していると言えるのか、データ構造から詳しく解説してみた - Qiita

                                                      Goのinterfaceは明示的に実装を宣言せず、実装側がinterfaceのシグネチャを満たしているかによって型が決まるDuck typingを採用していると言われています。私は当初このような説明を聞いたときにピンと来ず、むしろそれはTypeScript等に見られるStructural Typingなのでは?と思いました。 しかし実際にデータ構造を調べて見ると、確かにDuck typingであり、かつStructural Typingでもあるという考えに至りました。 これまでなかなかGoのデータ構造に触れる機会がありませんでしたが、調べてみるとこれまで気づかなかった観点がいくつも出てきたのでぜひ紹介したいと思います。 Duck typingについて 今回の主題となる部分ですので、Duck typing(ダックタイピング)についておさらいします。 Duck typingはアナロジーである「

                                                        なぜGoはDuck typingを採用していると言えるのか、データ構造から詳しく解説してみた - Qiita
                                                      • JSONやYAMLのデータ構造をチェックするライブラリStrongJSONのご紹介 - soutaroブログ

                                                        JSONやYAMLを使うと、かなり複雑なデータが作成できますが、これが意図通りの形式になっているかを確認するのは自明ではありません。XMLにはXML Schemaがありますが、そんな感じのものがJSONにも欲しかったので、作りました。 github.com こんな感じで使います。 Schema = StrongJSON.new do let :phone, object(phone: string) let :email, object(email: string) let :contact, enum(phone, email) let :person, object(name: string, contacts: array(contact)) end json = Schema.person.coerce(JSON.parse(input, symbolize_names: true

                                                          JSONやYAMLのデータ構造をチェックするライブラリStrongJSONのご紹介 - soutaroブログ
                                                        • 重要なのは「データ構造」と「処理機能」、Pythonの基礎を固める

                                                          プログラミング言語「Python」は広く使われるようになり、高い人気を誇る。この特集では、Pythonで自動化アプリを自作できるようになるための最低限の知識を紹介する。 Pythonを含め、プログラミングにおいて重要なのは、「データ構造」と「処理機能」を理解することです。どのプログラムも何かしらの「データ」を「処理」します。データには数値や文字列などの種類があります。複数のデータをまとめて扱うなら、まとめ方の「構造」もあります。そして、それらのデータにさまざまな計算や加工などを行う「処理機能」があります。 どのような種類/構造のデータに対して、どういった処理機能を用いるのか…、それをプログラマが考えて処理手順を組み立て、コードを書いていくことこそがプログラミングなのです。この「データ構造」と「処理機能」の2つはその都度出てきますので、そこは意識しておぼえてください。 Pythonの文法は多

                                                            重要なのは「データ構造」と「処理機能」、Pythonの基礎を固める
                                                          • Amazon.co.jp: 問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書): 大槻兼資 (著), 秋葉拓哉 (監修): 本

                                                              Amazon.co.jp: 問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書): 大槻兼資 (著), 秋葉拓哉 (監修): 本
                                                            • 全ての開発者が知っておくべき重要なデータ構造とアルゴリズム - deve.K

                                                              データ構造はコンピュータサイエンスとソフトウェアエンジニアリングの分野全体で幅広く多様な用途があります。 プログラマにとって、アルゴリズムとデータ構造は最も重要なテーマです。 プログラミングの分野に足を踏み入れたい場合は、最も一般的なデータ構造を習得し、需要の高いスキルであなたの履歴書を強化する必要があります。 本日はデータ構造とアルゴリズムを解説いたします。 データ構造とアルゴリズム データ構造とは? 8つのデータ構造 アルゴリズムとは? 覚えておくべきアルゴリズム 検索アルゴリズム 二乗によるべき乗 ソートアルゴリズム ハッシング 文字列の照合と解析 動的計画法(DP) アルゴリズムは何に使用される? 最後に データ構造とアルゴリズム プログラミングはすべてデータ構造とアルゴリズムに関するものとなります。 コンピュータプログラミングでは、データ構造はコンピュータプログラムでデータを効率

                                                                全ての開発者が知っておくべき重要なデータ構造とアルゴリズム - deve.K
                                                              • 4-2_アルゴリズム基礎 4-3_データ構造とプログラミング基礎

                                                                3 . 8 2- 0 8 2- 0 3 . 8 2- 0 5411 2- 0 • • - 4 4 . . 4 • . • - 4 4 - 4 2- 0 9 70 6 7 9 70 6 7 0 947 0 0 1 3 5 8 1 3 5 0 2 - . - . 2- 0 . 4 - 4 - . • A Y 5 / • . 5 S / • C. B . 9 . . A 4. S B A / • S . A A 4 5 42 /5A / • C. 4 A B B . 4 / S 0 N 1 - . 1 -40 1 -40 . 5 • - A • B2 0 1 • A B2 Y C Y S N - 0 . 1 0 . 1 - • B 2 e BC A ( =B A • B SN B e BC SN A ( =B A 6SN 10 8 B A e A e 4 SN Y e 5 t -) 7- 4 .

                                                                • データ構造とアルゴリズムのカレンダー | Advent Calendar 2020 - Qiita

                                                                  The Qiita Advent Calendar 2020 is supported by the following companies, organizations, and services.

                                                                    データ構造とアルゴリズムのカレンダー | Advent Calendar 2020 - Qiita
                                                                  • Pythonのスタックとキューには何を使えばいいのか(各データ構造の速度比較) - Qiita

                                                                    はじめに 本記事は、主に競技プログラミングにおける話です。 Python において、スタックとキューを実装するには複数の方法があります。 スタック(stack) list を使う(append(), pop()) collections.deque を使う(append(), pop()) キュー(queue) list を使う(append(), pop(0)) collections.deque を使う(append(), popleft()) queue.Queue を使う(put(), get()) さて、この中で一体どれを使うのが最適でしょうか。 今回はそれを速度面に注目して調べます。 計測方法 各データ構造に対して、要素の追加と取り出しを10回、100回、1000回、10000回、100000回行います。 どのコードも、以下の import 部分は省略しています。

                                                                      Pythonのスタックとキューには何を使えばいいのか(各データ構造の速度比較) - Qiita
                                                                    • Rustで簡潔データ構造のライブラリを3つリリースしました

                                                                      活動報告。 Rustで簡潔データ構造のライブラリを3つリリースしました。 これらの簡潔データ構造に興味のある方、APIを綺麗に整備してREADMEも分かりやすく書いたつもりですので、是非スターをお願いします✌ SIGMOD 2018の論文を眺めていて、Best PaperのSuRF: Practical Range Query Filtering with Fast Succinct Triesを読んで興味を持ちました。 一致検索も範囲検索も高速にできる省メモリなデータ構造SuRFに関する論文。どうやら簡潔データ構造を使っているらしい。 簡潔データ構造というのは、データサイズが情報理論的下限と同程度に小さく、かつ非圧縮なデータ構造と比肩する高速さを兼ね備えたデータ構造です。 チート級ですが、多くの場合「データの追加や更新には対応してない」などの制約があるため、使う場面は限定されたりします。

                                                                      • デジタルシネマパッケージのデータ構造を初心者向けに分かりやすく解説 | ユニコブログ®

                                                                        デジタルシネマパッケージには、基本的なデータ構造があります。 一見、ややこしく見えますが、基本的には全て同じ構造です。 今回解説するデータ以外に、暗号化のデータや字幕データなどが入ります。 利用する音声データによってもファイルの数が変わったりしますが、本記事で紹介する基本構造を覚えておけば大丈夫です。 DCPとは定められたデータ構造のことを指す DCP(デジタルシネマパッケージ)とは、映像データで言われる一つの何かのデータではありません。 DCI(Digital Cinema Initiative)というデジタルシネマの規格で定められたデータ構造のことを指します。 DCIができるまでの歴史については、書き記すとかなりの量になるので、また別記事で書いていきます。 DCPは、非常に厳格なデータ構造とその約束事が細かく決められています。 少しでも規格から外れていると、シネマサーバーにインジェスト

                                                                          デジタルシネマパッケージのデータ構造を初心者向けに分かりやすく解説 | ユニコブログ®
                                                                        • グラフ問題 - アルゴリズムとデータ構造大全

                                                                          グラフ問題 %%{init: {"flowchart" : { "curve" : "basis" } } }%% graph LR 1((1)) --- 2((2)) 2((2)) --- 3((3)) 2((2)) --- 4((4)) 3((3)) --- 1((1)) 3((3)) --- 4((4)) 4((4)) --- 1((1)) グラフは,ノード(頂点)と,それらを繋ぐエッジ(辺)からなる.このドキュメントでは,特に断りのない限りグラフのノード集合を\(V\),辺集合を\(E\)とする.ノード数は\(|V|\),辺数は\(|E|\)で表される. グラフでよく出る単語 パス(道) あるノードから始めて,いくつかの辺をたどって,あるノードにたどり着くまでのノードの列をパス(道)という.有向グラフの場合,向きに従ってたどる必要がある. また,同じノードを2回通らないパスを単純パ

                                                                          • データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です! - Qiita

                                                                            データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です!アルゴリズム競技プログラミングデータ構造FenwickTreeBinaryIndexTree $$ \newcommand \lsb { \mathrm { lsb } } $$ Fenwick tree (Binary indexed tree, BIT) をお勉強しましたところ、大変美しい構造を持つことがわかりましたから、共有させていただきたいと思います。案外長くなってしまって、自分でもびっくりしています。 第一章:Fenwick tree の基本機能 初めての方はまずこちらです。 問題 整数の配列 $a$ があります。これに次のようなクエリが飛んできます。 操作 内容

                                                                              データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です! - Qiita
                                                                            • 『みんなのデータ構造』を読んで Rust で実装した - Qiita

                                                                              「みんなのデータ構造」を Rust で実装してみました。 この記事では、すすめ方、気になったところや躓いたところなどについて書きたいと思います。 実装したもの 実装したものは以下になります。効率などを考えるとunsafeが必須なのかもとも思いましたが、今回は Rust の勉強を兼ねているので、Safe Rust のみで実装してみました。 一応簡単なテストコードも付属しています。(cargo testで試せます)。 Open Data Structures (in Rust) 時々見直したり書き直したりもしていますが、前半の章よりも後半のほうがより Rust らしくかけているのではないかなと思います。 ちなみに一番うまく実装できたと思うお気に入りのデータ構造は RedBlackTree です。 きっかけ "データ構造とアルゴリズム" の分野に苦手意識があった。 そして、そろそろこれではいけな

                                                                                『みんなのデータ構造』を読んで Rust で実装した - Qiita
                                                                              • AtCoder緑になるまでに勉強した基本的なアルゴリズムやデータ構造まとめ - Qiita

                                                                                先日開催されました東京海上日動プログラミングコンテスト2020で緑レートになることができました。 中には初回参加で緑になってしまう人もいるようですが、自分の場合そう順調にいくはずもなく、ここまで来るのに結構自己学習を重ねてきました。初参加したコンテストはアルゴリズムやデータ構造などはNo勉強、過去問も大体10門程度を解いただけでの参加ということもあり、灰色diffでした。そこからコツコツ勉強を重ね、10回目のコンテスト参加でようやく緑になれました。このブログでは今までに自身が学習したアルゴリズムやデータ構造を備忘録の意味も含めまとめ&Pythonでの実装をして行きたいと思います。 もしこの記事がお役にたったらLGTMいただけると幸いです。 自身のスペック 大学、大学院は理系だが、情報系ではない。 数学は昔から苦手ではないが、決して得意でもない。 プログラミング歴は1年半程度 普段の業務では

                                                                                  AtCoder緑になるまでに勉強した基本的なアルゴリズムやデータ構造まとめ - Qiita
                                                                                • Kindleストアでデータ分析関連書が30%OFF! データサイエンス はじめの一歩フェア/『Pythonで学ぶアルゴリズムとデータ構造』は30%OFFの1,848円【Book Watch/セール情報】

                                                                                    Kindleストアでデータ分析関連書が30%OFF! データサイエンス はじめの一歩フェア/『Pythonで学ぶアルゴリズムとデータ構造』は30%OFFの1,848円【Book Watch/セール情報】

                                                                                  新着記事