JavaScript - プログラミング、アルゴリズムの問題
PHP中文网
PHP中文网 2017-06-12 09:25:56
0
4
842

一昨日面接で質問がありました
js、python、java、c、cなどの言語を使用して100億のデータを10秒で計算し、それを完了してください(わずか3秒以内)、偶数 奇数の前
形式は次のとおりです
1, 2, 3, 4, 5
出力結果は
2, 1, 4, 3, 6, 5,
質問 2: 1 上のコードでは、for while キーワードを使用せず、100 億個の素数をすべて取得する必要があります (時間は 3 秒を超えることはできません)
これを行うにはどうすればよいですか?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信 (4)
我想大声告诉你

最初の質問がわかりません。これは、2 つの数字がペアであり、偶数が奇数の前に来るという意味ですか?

2 番目の質問は簡単です。ループを使用できない場合は、配列の反復を使用します。

いいねを押す+0
    代言

    そういえばphpforeachは関係ないですね(笑

    面接官の意図は、再帰関数を書くように求めることだと思いますか?まあ、そうだと思います。

    いいねを押す+0
      Ty80

      一昨日面接で質問がありました
      js、python、java、c、c++などの言語を使用して、100億のデータを10秒で計算して完了してください(3秒以内のみ)、偶数が来ます奇数の前
      形式は次のとおりです
      1、2、3、4、5
      出力結果は
      2、1、4、3、6、5、
      質問2: 1のコードの上に、 100 億からすべての素数を取得する (時間は 3 秒を超えることはできません)
      これを行うにはどうすればよいですか?


      しばらく使えなくなるので

      それでは、再帰的なパフォーマンスが十分ではありません。 。 。しかし、私はまだいくつかを使用しています。 。For Performance

      賢い方法があるかも知れません

      。 。 。100亿サイズはあるはずです。 まだ見つかりません。

      コード

      100億はちょっと大きいので、まずは10万でいきます

      リーリー

      このようにして、長さ 100,000 の自然数の配列を取得できます。


      次へ

      1. 偶数が最初、奇数が最後

      観察した結果、奇数 + 1偶数 - 1は大丈夫であることがわかりました

      リーリー

      最初の質問に答えてください

      スクリーンショット 1

      次へ

      次の問題は、上記に基づいて素数を取得することです。つまり、zsからすべての素数を取得します。

      素数の問題を調べたら、他の人が言いました

      それから、6の倍数のそれぞれの左辺と右辺をたどって、それらが素数であるかどうかを判断するだけです。质数分布在 6 的倍数的左边或者右边

      リンク: 素数/素数かどうかの判定 - 通常の判定アルゴリズムから効率的な判定アルゴリズムの考え方まで

      リーリー

      スクリーンショット 2

      正しいかどうかは分かりません...

      しかし、

      の素数 1 2 3 5 を個別に戻す必要があります。 (ここにはスペルはありません)小于 6

      パフォーマンス

      上に書いたコードを貼り付けてください

      リーリー

      テスト

      リーリー

      結果は写真の通りです1000 万


      13.8秒かかりました。 10 + 3秒で

      のボリュームを完了することは不可能です。13.8秒 不可能做到10 + 3秒内完成100亿

      私のコンピューターは

      i5-4210M12GChrome 58

      JavaScriptはこのパフォーマンスを達成できません:

      13秒で数値....JavaScript做不到这样的性能:100亿个数字13

      いくつかの

      データ...G

      上記の考えによれば、

      でも100億を13秒で実行するのは難しいと推定されます。C/C++

      問題を解決することに集中してください。

      リンク

      数値が素数/素数かどうかを判定する - 通常の判定アルゴリズムから効率的な判定アルゴリズムのアイデアまで

      いいねを押す+0
        Ty80

        まず第一に、上の階の素数を見つけるためのアルゴリズムに感謝します。結果とコードを投稿します(直接爆発したのは 1,000 万、1 億のブラウザのみで、再帰は素数を見つけるのに使用できませんでした(私のテストの結果)。それ以外の場合は、Exploded する必要があり、反復することしかできません)。

        ブラウザでの結果:

        ノードの結果:

        リーリー
        いいねを押す+0
          最新のダウンロード
          詳細>
          ウェブエフェクト
          公式サイト
          サイト素材
          フロントエンドテンプレート
          私たちについて 免責事項 Sitemap
          PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!