private void MinimumRouteSearch ( boolean[] Visited, int[][] RouteArray, int[] Dist, int[] prev, int pos, int N, int[] nodes ) {
		while (true) {
			Visited[pos] = true; //̏VisitedtO𗧂Ă
			for ( int x = 0; x < N; x++ ) {
				if ( Visited[x] ) continue; //łɂXȂ炱̏̓X[
				if ( RouteArray[pos][x] > 0) { //oHꍇ̏
					int d = Dist[pos] + RouteArray[pos][x]; //ݒn玟̒n_܂ł̋
					if ( d < Dist[x] ) { //̒n_ + ̒n_XĂ菬΍XV
						Dist[x] = d;
						prev[x] = pos;
					}	
				}
			}
			//܂KĂȂ̒ŁAX^[gn_̋ŏɂȂ钬I
			int next = -1; //̊XTtO
			int nextDist = Integer.MAX_VALUE;
			for ( int node: nodes ) { 
				if ( Visited[node] ) continue;
				if ( Dist[node] < nextDist ) {
					next = node;
					nextDist = Dist[node];
				}
			}
			if ( next == -1 ) break;
			else pos = next;			
		}
	}