나는 220000 * 7 * 6거대한 벡터를 주문하는 가장 빠른 방법은 무엇입니까?
나는 [X] [5] [Y]로 주문하고의 다차원 벡터를 주문하는 가장 빠른 방법을 찾고, 그리고 난 중간의 모든 값을해야 (7) 벡터 후속 조치.
for(int i =0;i<211876;i++){
for(int k =0;k<211876;k++){
if(vec[k][5][myposition] < vec[k+1][5][myposition]){
for(int n =0;n<7;n++){
swap2int(vec[k][n][myposition],vec[k+1][n][myposition]);}
}
}
}
void swap2int(int &one, int& two){
int temp=0;
temp = one;
one = two;
two = temp;
return;
}
이 다소 매우 느리고 나는이 속도를 향상시킬 수있는 방법을 찾고 있어요.
코드를 정리하십시오. 나는 "i"가 어디에서 사용되는지를 보지 못했고 "myposition"에 대한 정의는 어디에도 없습니다. 배열의 각 "행"을 개별적으로 정렬하는 것처럼 보입니다. 표준 정렬 및 사용자 정의 반복기 유형으로 수행 할 수 있어야합니다. 그러나 무엇이 이루어지고 있는지에 대한 세부 사항없이 우리는 도울 수 없습니다. –
당신이 버블 정렬을 구현 한 것처럼 보입니다. 이 [인기있는 정렬 알고리즘 목록] (http://en.wikipedia.org/wiki/Sorting_algorithm#Summaries_of_popular_sorting_algorithms)을 확인하십시오. 근본적으로 그것들은 당신이 가진 것보다 더 빠를 것입니다. – Kevin
... 정말로 필요한 경우가 아니라면 자신의 정렬을 중복 작성하는 것이므로 ''을 사용해야하며 std :: sort (http://www.cplusplus.com/reference/algorithm/sort/) –
IdeaHat