알고리즘 클래스에 대한 숙제 문제를 해결하기 위해이 알고리즘이 어떻게 작동하는지에 대해 필자가 알아 봤습니다. 이미 답변을 온라인에서 찾았으므로 답을 찾지 않고 단계별로 코드 작업을하는 데 도움이됩니다. 지금까지 알아낼 수있는 것부터 알고리즘은 지정되지 않은 길이의 배열을 받아들이고 여러 번의 반복을 통해 개별 요소를 배열 내의 더 작은 요소와 비교하여 숫자를 정렬합니다. 반복이 끝나면 각 요소에 순서가 지정되어야하는 순서를 지정하는 위치 색인을 비 내림차순으로 할당합니다. 그러나 내가 알 수없는 것은 첫 번째 루프가 완료된 후 두 번째 for-do 루프가 반복을 시작하는 방법입니다. 어떤 도움을 주시면 감사하겠습니다비교 계산 알고리즘 용 의사 코드
질문 : 요소, 작은 요소의 수의 각각에 대해 계산에 의해 배열을 정렬 정렬 문제에 대한 알고리즘을 고려하고있는 요소를 넣어이 정보를 사용하여 소트 된 배열 내의 적절한 위치 번호의 다음 목록 (60, 35, 81, 98, 14, 47) 정렬이 정렬 알고리즘의 핵심은 실현
Algorithm ComparisonCountingSort(A[0..n − 1], S[0..n − 1])
//Sorts an array by comparison counting
//Input: Array A[0..n − 1] of orderable values
//Output: Array S[0..n − 1] of A’s elements sorted in nondecreasing order
for i ← 0 to n − 1 do
Count[i] ← 0
for i ← 0 to n − 2 do
for j ← i + 1 to n − 1 do
if A[i] < A[j]
Count[j] ← Count[j] + 1
else
Count[i] ← Count[i] + 1
for i ← 0 to n − 1 do
S[Count[i]] ← A[i]
return S
코드를 조금 더 포맷 할 수 있습니까? 들여 쓰기가 적절하다면 대괄호가 필요하지 않지만, 현재 중첩 된 fors 또는 무엇인지 알 수 없습니다. – Compass
@Compass, 나는 그 덕분에 도움이 되었으면 좋겠다. – user2827137
첫 번째 루프가 완료된 후 두 번째 루프가 시작되지 않고 루프 하나의 두 번째 루프가 실제로 첫 번째 루프로 중첩 **된다. – Fallen