>  Q&A  >  본문

javascript - 프로그래밍, 알고리즘 문제

엊그제 면접 질문이 있었습니다
js, python, java, c, c++ 등의 언어를 사용하여 100억 개의 데이터를 10초 안에 계산해서 완료(3초 이내에만), 짝수는 앞에 와주세요 홀수
형식은 다음과 같습니다
1, 2, 3, 4, 5
출력 결과는
2, 1, 4, 3, 6, 5,
질문 2: 1의 코드에서 다음이 필요합니다. for while 키워드는 사용할 수 없습니다. 100부터 시작합니다. 1억 중에서 소수를 모두 구합니다. (시간은 3초를 초과할 수 없습니다.)
어떻게 할까요?

PHP中文网PHP中文网2660일 전883

모든 응답(4)나는 대답할 것이다

  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:27:56

    첫 번째 질문을 이해하지 못합니다. 두 숫자가 짝이고 짝수가 홀수보다 먼저 온다는 뜻인가요?

    두 번째 질문은 간단합니다. 루프를 사용할 수 없다면 배열 반복을 사용하세요.

    회신하다
    0
  • 代言

    代言2017-06-12 09:27:56

    그러니까 phpforeach상관없어요(웃음

    )

    재귀함수를 작성해 달라고 하는 것이 면접관의 의도인 것 같은데요? 글쎄요.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-06-12 09:27:56

    엊그제 면접 질문이 있었습니다
    js, python, java, c, c++ 등의 언어를 사용하여 100억 개의 데이터를 10초 안에 계산해서 완성(3초 안에만)하면 짝수가 옵니다. 홀수 앞
    형식은 다음과 같습니다
    1, 2, 3, 4, 5
    출력 결과는
    2, 1, 4, 3, 6, 5,
    질문 2: 1의 코드 위에는 for while 키워드를 사용할 수 없습니다. from 100억 중에서 소수를 모두 가져옵니다(시간은 3초를 초과할 수 없음)
    어떻게 할까요?


    당분간은 사용할 수 없으니까

    그렇다면 재귀적 성능만으로는 충분하지 않습니다. . . 하지만 아직도 일부를 사용하고 있어요. . For Performance

    영리한 방법이 있을 수도 있습니다

    . . . 100亿 사이즈가 나와야 합니다. 아직 찾지 못했습니다.

    코드

    100억은 좀 크네요. 먼저 100,000부터 가져가겠습니다

    으아악

    이런 방법으로 길이가 100,000인 자연수 배열을 얻을 수 있습니다.


    다음

    1. 짝수 먼저, 홀수 마지막

    관찰 결과 奇数 + 1偶数 - 1괜찮다는 것을 알았습니다

    으아악

    첫 번째 질문을 완료하세요

    스크린샷 원

    다음

    다음 질문은 위의 내용을 바탕으로 소수를 구하는 것, 즉 zs

    에서 모든 소수를 구하는 것입니다.

    소수에 관한 문제를 찾아봤는데 다른 사람이 质数分布在 6 的倍数的左边或者右边 그런 다음 각 6의 배수의 왼쪽과 오른쪽을 순회하여 소수인지 확인하면 됩니다.

    링크: 숫자가 소수/소수인지 판단하기 - 일반적인 판단 알고리즘부터 효율적인 판단 알고리즘 아이디어까지

    으아악

    스크린샷 2

    맞을지는 모르겠지만...

    하지만 小于 6의 소수 1 2 3 5를 별도로 다시 넣어야 합니다. (여기에는 철자가 없습니다)

    성능

    위에 적힌 코드를 준수하세요

    으아악

    테스트

    으아악

    1000 万 결과는 사진과 같습니다


    13.8초가 걸렸습니다. 13.8 秒 不可能做到 10 + 3 秒内完成 100亿의 볼륨을 10 + 3초 안에 완료하는 것은 불가능합니다.

    내 컴퓨터는 i5-4210M 12G Chrome 58

    JavaScript는 이 성능을 달성할 수 없습니다. JavaScript 做不到这样的性能: 100亿 个数字 13 13초 안에 숫자가 표시됩니다....

    여러 G 데이터...

    위 아이디어에 따르면, 심지어 C/C++13초 안에 100억개를 실행하는 것은 어려울 것으로 추정됩니다.

    문제 해결에 집중하세요.

    링크

    숫자가 소수/소수인지 판별 - 일반적인 판단 알고리즘부터 효율적인 판단 알고리즘 아이디어까지

    회신하다
    0
  • PHP中文网

    PHP中文网2017-06-12 09:27:56

    우선 위층에 소수를 찾는 알고리즘을 알려주셔서 감사합니다. 결과와 코드를 게시하겠습니다. (1천만, 1억 개의 브라우저만 직접 폭발했으며 재귀를 사용하여 소수를 찾을 수 없습니다. (내 테스트 결과) 그렇지 않으면 폭발되어 반복만 가능합니다.)

    브라우저 결과:

    노드의 결과:

    으아악

    회신하다
    0
  • 취소회신하다