나는 양수의리스트를 가지고 있으며, 변수 h1
, h2
및 h3
에 3 개의 가장 큰 값을 저장하려고합니다. 나머지 값은 부적합합니다.여기서 정렬 알고리즘을 구현할 가치가 있습니까?
int*
및 realloc
메모리가 채워지는대로 관리하고 적합한 정렬 알고리즘이 뒤따라야한다고 생각했지만 정말 가치가 있습니까? 그것은 그 일의 바보 같은 정적 방법 같은 느낌
if (currentVal > h3) {
h3 = currentVal;
if (currentVal > h2) {
h3 = h2;
h2 = currentVal;
if (currentVal > h1) {
h2 = h1;
h1 = currentVal;
}
}
}
,하지만 작동 : 정말 전체 배열을 정렬 할 필요가 없기 때문에, 난 그냥이 좋아하지 않았다. 대신에 정렬 알고리즘을 구현해야합니까? 그렇다면 어떤 제안이 적합할까요?
있는 다음과 같은 방법으로 배열의 최대 요소의 수를 찾을 수 있습니까? –
정렬 할 필요가 없습니다. 그렇게하는 것이 좋습니다. 목록이 짧으면 휠을 다시 작성하는 것보다 실제로 정렬하는 것이 더 편리합니다. – ale64bit
3 개의 값만 저장하므로 정렬 오버 헤드가 코드보다 길어질 수 있습니다. 어셈블리 언어 목록을보십시오. –