From d1d96bf892558b1234c5faf23ef3f169f14c3b68 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Mon, 23 Oct 2023 17:04:15 +0800 Subject: [PATCH] define the functionality of split nodes and edges array --- server/meta/init.go | 1 + server/utils/splitArr.go | 41 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 server/utils/splitArr.go diff --git a/server/meta/init.go b/server/meta/init.go index 1fbe213..00c3847 100755 --- a/server/meta/init.go +++ b/server/meta/init.go @@ -1,3 +1,4 @@ +// 禁止调用utils包 package meta const ( diff --git a/server/utils/splitArr.go b/server/utils/splitArr.go new file mode 100644 index 0000000..28d8897 --- /dev/null +++ b/server/utils/splitArr.go @@ -0,0 +1,41 @@ +package utils + +import "gitee.com/openeuler/PilotGo-plugin-topology-server/meta" + +func SplitEdgesByBreakpoint(arr []*meta.Edge, n int) [][]*meta.Edge { + length := len(arr) + size := length / n + result := make([][]*meta.Edge, n) + + for i := 0; i < n; i++ { + start := i * size + end := (i + 1) * size + + if end > length { + end = length + } + + result = append(result, arr[start:end]) + } + + return result +} + +func SplitNodesByBreakpoint(arr []*meta.Node, n int) [][]*meta.Node { + length := len(arr) + size := length / n + result := make([][]*meta.Node, n) + + for i := 0; i < n; i++ { + start := i * size + end := (i + 1) * size + + if end > length { + end = length + } + + result = append(result, arr[start:end]) + } + + return result +} -- Gitee