Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

개선된 다익스트라 자바 코드 질문 #203

Open
@Ahrang777

Description

@Ahrang777

intcost =d[now] +graph.get(now).get(i).getDistance();

개선된 다익스트라 자바 코드에서 cost 부분이 dist 가 아닌 d[now] 가 오는게 잘 이해가 안됩니다.

아래 내용의 설명을 봤을때 dist가 d[now] 보다 작거나 같은 경우 이후 for문을 돌릴 수 있는 것 같은데
굳이 dist보다 크거나 같은 d[now]로 cost를 계산하는 이유가 있나요? 단순히 생각했을때 더 작거나 같은 dist로 cost를 계산하는게
맞는거 같은데 해당 부분이 잘 이해가 안됩니다.실제로 c++, 파이썬에서는 dist로 계산하셨는데 자바만 다르더라구요 이유가 있을까요?

// 현재 노드가 이미 처리된 적이 있는 노드라면 무시if (d[now] <dist)continue;// 현재 노드와 연결된 다른 인접한 노드들을 확인for (inti =0;i <graph.get(now).size();i++) {intcost =d[now] +graph.get(now).get(i).getDistance();// 현재 노드를 거쳐서, 다른 노드로 이동하는 거리가 더 짧은 경우if (cost <d[graph.get(now).get(i).getIndex()]) {d[graph.get(now).get(i).getIndex()] =cost;pq.offer(newNode(graph.get(now).get(i).getIndex(),cost));        }}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


      [8]ページ先頭

      ©2009-2025 Movatter.jp