java - 用数组中最后元素覆盖随机抽取到的位置,这样的算法真的合适么?
怪我咯
怪我咯 2017-04-17 15:29:09
0
1
507
怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(1)
Ty80

배열 내부에서 임의의 값을 가져와서 위치를 변경하는 알고리즘입니다. 배열에서 임의의 숫자를 가져올 때마다 해당 임의의 숫자가 배열 끝에 있는 값으로 대체됩니다. 가져온 값은 배열의 끝으로 이동됩니다. 새로운 임의의 값은 0과 n-1 사이, 즉 선두부터 전치되지 않은 마지막 위치까지가 되므로 중복된 값이 없습니다. 예:
숫자 = [0,1,2,3,4,5],
r=2이면 숫자 2인 임의의 값 숫자[2]를 꺼내고
전치하면 숫자[r] = 숫자[n- 1], 2가 배열의 마지막 숫자로 바뀌고 이제 배열은
[0,1,5,3,4,2],
이때 5가 맨 앞으로 바뀌게 됩니다. , 그리고 n-- 그 후 다시 임의의 값을 취하면 [
0부터 입니다. ,1,5,3,4,2] (굵은 부분)이므로 새 임의 값에는 빼낸 2가 절대 포함되지 않습니다.마찬가지로 값을 다시 가져오면 이 값이 마지막에서 두 번째로 배치됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿