プログラミング

プロおよび熱狂的プログラマーのためのQ&A

14
インプレース基数ソート
これは長いテキストです。我慢してください。要約すると、問題は、実行可能なインプレース基数ソートアルゴリズムがあるかどうかです。 予備的 「A」、「C」、「G」、および「T」の文字のみを使用する小さな固定長の文字列が大量にあります(そうです、ご想像のとおり、DNAです)。 現時点では、STLのすべての一般的な実装でintrosortを使用std::sortします。これはかなりうまくいきます。しかし、基数ソートは私の問題セットに完全に適合し、実際にははるかにうまく機能するはずだと確信しています。 細部 私はこの仮定を非常に単純な実装でテストしました。比較的小さな入力(10,000程度)の場合、これは真実でした(少なくとも、2倍以上の速さ)。ただし、問題のサイズが大きくなると(N > 5,000,000)、ランタイムは少し低下します。 その理由は明らかです。基数ソートでは、データ全体をコピーする必要があります(実際には、私の単純な実装では2回以上)。これは、メインメモリに最大4 GiBを入れたことを意味します。問題のサイズが実際にはさらに大きくなるため、そうでなかったとしても、これだけのメモリを使用する余裕はありません。 ユースケース 理想的には、このアルゴリズムは、DNAおよびDNA5(追加のワイルドカード文字「N」を許可)、またはIUPAC 曖昧コード(結果として16個の異なる値)を持つDNAの場合でも、2〜100の任意の文字列長で機能する必要があります。しかし、これらすべてのケースをカバーすることはできないので、速度の向上に満足しています。コードは、どのアルゴリズムにディスパッチするかを動的に決定できます。 研究 残念ながら、基数ソートに関するウィキペディアの記事は役に立たない。インプレースバリアントに関するセクションは完全にゴミです。基数ソートのNIST-DADSセクションは、存在しないものの隣にあります。アルゴリズム「MSL」について説明しているEfficient Adaptive In-Place Radix Sortingと呼ばれる有望な論文があります。残念ながら、この論文も残念です。 特に、以下のことがございます。 まず、アルゴリズムにはいくつかの間違いがあり、説明がつかないままです。特に、再帰呼び出しの詳細については説明していません(現在のシフト値とマスク値を計算するためにポインターをインクリメントまたは削減すると単純に想定しています)。また、関数dest_groupを使用し、dest_address定義を行いません。これらを効率的に実装する方法がわかりません(つまり、O(1)で、少なくともdest_address簡単ではありません)。 最後に重要なことですが、アルゴリズムは、配列インデックスを入力配列内の要素と交換することにより、インプレースネスを実現します。これは明らかに数値配列でのみ機能します。文字列に使用する必要があります。もちろん、強い型付けをねじ込むだけで、メモリが属していないインデックスの格納をメモリが許容すると想定して先に進むことができます。しかし、これは、文字列を32ビットのメモリ(32ビット整数と仮定)に押し込める場合にのみ機能します。これはわずか16文字です(現時点では、16> log(5,000,000)であるため無視します)。 著者の1人による別の論文では、正確な説明はまったくありませんが、MSLの実行時間がサブリニアであり、これは完全に間違っています。 要約すると:機能するリファレンス実装、または少なくともDNA文字列で機能する機能するインプレース基数ソートの優れた疑似コード/説明を見つける可能性はありますか?

20
パンダのデータフレーム文字列エントリを分割(分解)して行を分離する
pandas dataframeテキスト文字列の1つの列にカンマ区切りの値が含まれているがあります。各CSVフィールドを分割し、エントリごとに新しい行を作成します(CSVはクリーンで、 '、'でのみ分割する必要があると想定しています)。たとえば、次のaようになりbます。 In [7]: a Out[7]: var1 var2 0 a,b,c 1 1 d,e,f 2 In [8]: b Out[8]: var1 var2 0 a 1 1 b 1 2 c 1 3 d 2 4 e 2 5 f 2 これまでにさまざまな簡単な関数を試しましたが、この.applyメソッドを軸で使用すると、戻り値として1行しか受け入れられないようで.transform、作業できません。どんな提案も大歓迎です! データの例: from pandas import DataFrame import numpy as np a …

5
Django-クエリ結果の制限
モデルの最後の10個のインスタンスを取得して、次のコードを取得します。 Model.objects.all().order_by('-id')[:10] 最初にすべてのインスタンスを取得し、最後に10個だけ取得するのは本当ですか?より効果的な方法はありますか?
200 django 

30
配列とリンクリスト
誰かがリンクされたリストを配列で使用したいのはなぜですか? リンクされたリストをコーディングすることは、間違いなく、配列を使用するよりも少し多くの仕事であり、何が追加の努力を正当化するのか疑問に思うかもしれません。 新しい要素の挿入はリンクされたリストでは取るに足らないことだと思いますが、これは配列の主要な作業です。リンクリストを使用して一連のデータを格納することと、配列に格納することには、他に利点がありますか? この質問は一般的なデータ構造に関係していますが、他の質問は特定のJavaクラスについて具体的に尋ねているため、この質問はこの質問の複製ではありません。

14
パス内のFile.separatorとスラッシュの違い
Java Path-Stringでの使用File.separatorと通常の違いは何/ですか? 二重のバックスラッシュとは対照的に\\、両方のバージョンがWindowsとUnixで動作するため、プラットフォームの独立性は理由ではないようです。 public class SlashTest { @Test public void slash() throws Exception { File file = new File("src/trials/SlashTest.java"); assertThat(file.exists(), is(true)); } @Test public void separator() throws Exception { File file = new File("src" + File.separator + "trials" + File.separator + "SlashTest.java"); assertThat(file.exists(), is(true)); } } 質問を言い換えると、もし/UnixとWindowsで動作するなら、なぜ使用したいのFile.separatorでしょうか?
200 java 

7
SVGコンテンツを削除または置換するにはどうすればよいですか?
svgチャートを含む要素を(D3.jsを使用して)作成するJavaScriptコードがあります。AJAXを使用してWebサービスからの新しいデータに基づいてグラフを更新したいのですが、問題は、更新ボタンをクリックするたびに新しいが生成さsvgれるため、古いデータを削除するか、そのコンテンツを更新することです。 以下は、私が作成するJavaScript関数のスニペットsvgです。 var svg = d3.select("body") .append("svg") .attr("width", w) .attr("height", h); 古いsvg要素を削除したり、少なくともそのコンテンツを置き換えるにはどうすればよいですか?
200 javascript  ajax  svg  d3.js 

7
TortoiseHgにパスワードを保存する
パスワードを保存するようにTortoiseHgを構成する方法はありますか? TortoiseHgを使用してアクセスするGoogle Codeでホストされているプロジェクトがあります。Googleコードに変更をプッシュしたいときはいつでもTortoiseHgがユーザー名とパスワードの入力を求めてきます。Google Codeでは自動生成されたパスワードを使用する必要があり、毎回それを調べるのはかなり繰り返しになります。

6
Mac OS Xの用語を構成してgitに色を付けるにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 7年前休業。 この質問を改善する Mac OS Xのgitデモをオンラインで見たところ、複数の色を持つように構成されています。 たとえば、彼のプロンプトはアンバーで、lsディレクトリは紫で、git diff出力は4色(ピンク、薄緑、赤、淡黄色)です。 それを実現するためにMac OS Xターミナルをどのように設定することができますか?これは間違いなくiTermではなくMac OS X Terminal.appです。


23
Android APKのパッケージ名を読み取る
Android APKのパッケージ名を取得する必要があります。APKを解凍してのコンテンツを読み取ろうとしましたAndroidManifest.xmlが、テキストファイルではないようです。 APKのパッケージ名を抽出するにはどうすればよいですか?
200 android  apk 

1
AngularJS-$ destroyはイベントリスナーを削除しますか?
https://docs.angularjs.org/guide/directive このイベントをリッスンすることで、メモリリークを引き起こす可能性のあるイベントリスナーを削除できます。スコープと要素に登録されたリスナーは、破棄されるときに自動的にクリーンアップされますが、サービスにリスナーを登録した場合、または削除されていないDOMノードにリスナーを登録した場合は、自分でクリーンアップするか、メモリリークが発生するリスクがあります。 ベストプラクティス:ディレクティブは自分自身でクリーンアップする必要があります。element.on( '$ destroy'、...)またはscope。$ on( '$ destroy'、...)を使用して、ディレクティブが削除されたときにクリーンアップ関数を実行できます。 質問: 私はelement.on "click", (event) ->私のディレクティブの中にあります: ディレクティブが破棄されると、element.onガベージコレクションされないようにするためのへのメモリ参照はありますか? Angularドキュメントには、ハンドラーを使用して、発行されたイベントのイベントリスナーを削除する必要があると記載$destroyされています。destroy()イベントリスナーを削除したような印象を受けましたが、そうではありませんか?

6
ScalaでVectorを選択する必要があるのはいつですか?
VectorScalaコレクションパーティーに遅れたようで、影響力のあるすべてのブログ投稿はすでに残されていました。 Java ArrayListではデフォルトのコレクションです-私は使用するかもしれませんLinkedListが、アルゴリズムを熟考し、最適化するのに十分注意した場合のみです。Scala Vectorでは、デフォルトとしてを使用する必要がありますSeqか、それともList実際に適切な場合に解決する必要がありますか?

17
SQL Serverで実行されているクエリを一覧表示する
現在Enterprise ManagerまたはSQLを介してMS SQL Serverで実行されているクエリや接続しているクエリを一覧表示する方法はありますか? 私のデータベースサーバーの1つで非常に長時間実行されているクエリが実行されていると思います。それを追跡して停止します(またはそれを開始し続ける人)。
200 sql-server 

10
オブザーバーとオブザーバブルはいつ使用すべきですか?
面接官は私に尋ねました: 何ObserverをObservable、いつ使うべきですか? 私は、これらの用語を認識していなかったので、私は戻って家を得たときは約グーグルで始めたObserverとObservable私は別の資源からいくつかのポイントを見つけ、: 1)ObservableはクラスでObserverあり、インターフェースです。 2)ObservableクラスはObserversのリストを保持します。 3)Observableオブジェクトが更新されると、オブジェクトupdate()の各のメソッドが呼び出され、Observer変更されたことが通知されます。 私はこの例を見つけました: import java.util.Observable; import java.util.Observer; class MessageBoard extends Observable { public void changeMessage(String message) { setChanged(); notifyObservers(message); } } class Student implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("Message board changed: " + arg); } } public class MessageBoardTest { …

13
Firebaseコンソールを使用せずにFirebase Cloud Messaging通知を送信するにはどうすればよいですか?
通知用の新しいGoogleサービスから始めFirebase Cloud Messagingます。 このコードのおかげでhttps://github.com/firebase/quickstart-android/tree/master/messaging Firebase User ConsoleからAndroidデバイスに通知を送信できました。 Firebaseコンソールを使用せずに通知を送信するAPIまたは方法はありますか?たとえば、自分のサーバーから直接通知を作成するためのPHP APIなどです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.