엊그제 면접 질문이 있었습니다
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초를 초과할 수 없습니다.)
어떻게 할까요?
我想大声告诉你2017-06-12 09:27:56
첫 번째 질문을 이해하지 못합니다. 두 숫자가 짝이고 짝수가 홀수보다 먼저 온다는 뜻인가요?
두 번째 질문은 간단합니다. 루프를 사용할 수 없다면 배열 반복을 사용하세요.
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
괜찮다는 것을 알았습니다
첫 번째 질문을 완료하세요
다음 질문은 위의 내용을 바탕으로 소수를 구하는 것, 즉 zs
소수에 관한 문제를 찾아봤는데 다른 사람이 质数分布在 6 的倍数的左边或者右边
그런 다음 각 6의 배수의 왼쪽과 오른쪽을 순회하여 소수인지 확인하면 됩니다.
링크: 숫자가 소수/소수인지 판단하기 - 일반적인 판단 알고리즘부터 효율적인 판단 알고리즘 아이디어까지
으아악맞을지는 모르겠지만...
하지만 小于 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억개를 실행하는 것은 어려울 것으로 추정됩니다.
문제 해결에 집중하세요.
숫자가 소수/소수인지 판별 - 일반적인 판단 알고리즘부터 효율적인 판단 알고리즘 아이디어까지
PHP中文网2017-06-12 09:27:56
우선 위층에 소수를 찾는 알고리즘을 알려주셔서 감사합니다. 결과와 코드를 게시하겠습니다. (1천만, 1억 개의 브라우저만 직접 폭발했으며 재귀를 사용하여 소수를 찾을 수 없습니다. (내 테스트 결과) 그렇지 않으면 폭발되어 반복만 가능합니다.)
브라우저 결과:
노드의 결과: