나는 세 번째 인덱스에 의해 정렬 2 차원 배열에 거품 정렬을 수행하려고합니다 (정수)C# 2 차원 배열 거품 정렬
string[,] edges = new string[,] { {"A", "B", "2"},
{"A", "C", "3"},
{"A", "E", "10"},
{"B", "C", "5"},
{"B", "D", "10"},
{"C", "D", "2"},
{"D", "E", "5"},
{"E", "B", "3"}
};
나는 정렬 코드의 IF의 statenent에 IndexOutOfRangeException을 얻을
string[] temp = {};
//sort edges and add them to sortedEdges - using bubblesort
for (int i = 0; i < edges.Length - 1; i++){
for (int j = 0; j < edges.Length - 1; j++){
if (Int32.Parse(edges[i, 2]) > Int32.Parse(edges[i + 1, 2])){
//make a swap
//put array record i into temp holder
temp[0] = edges[i, 0];
temp[1] = edges[i, 1];
temp[2] = edges[i, 2];
//copy i + 1 into i
edges[i, 0] = edges[i + 1, 0];
edges[i, 1] = edges[i + 1, 1];
edges[i, 2] = edges[i + 1, 2];
//copy temp into i + 1
edges[i + 1, 0] = temp[0];
edges[i + 1, 1] = temp[1];
edges[i + 1, 2] = temp[2];
}
}
}
제 질문은 배열 "가장자리"가 세 번째 열 순서대로 행으로 채워지도록 수정하는 방법입니다.
감사합니다.
https://stackoverflow.com/help/mcve – philipxy
사이드 노트 :' "3"' "정수"가 아닌 문자열입니다. 기본적으로 유형이 지정되지 않은 배열에 행 대신 데이터를 저장하는 데 적절한 구조를 사용해야합니다. –
피드백을 주셔서 감사합니다. 정수로 정의한 필드를 지적했습니다. IF 문에서 정수로 변환합니다. 이 작업을 더 잘 수행 할 수 있다는 것을 알고 있지만 내 목표는 명확한 방식으로 작업하는 것입니다. – user4416058