//一个数组中有大于0,等于0,小于0 的元素,
//实现一个算法,找到三个元素相乘是最大值的三个元素
package main
import "fmt"
//一个数组中有大于0,等于0,小于0 的元素,
//实现一个算法,找到三个元素相乘是最大值的三个元素
func insertSort(arr []int) []int {
for i := range arr {
preIndex := i - 1
current := arr[i]
for preIndex >= 0 && arr[preIndex] > current {
arr[preIndex+1] = arr[preIndex]
preIndex -= 1
}
arr[preIndex+1] = current
}
return arr
}
//对数据进行判断
func paresArr(arr []int) []int {
length := len(arr)
if length <3{
return arr
}
fmt.Println(length)
var newArr []int
if arr[0] > 0 {
newArr = append(newArr, arr[length-3], arr[length-2], arr[length-1])
} else if arr[length-1] <= 0 {
newArr = append(newArr, arr[length-3], arr[length-2], arr[length-1])
} else{
sum1 := arr[0] * arr[1] * arr[length-1]
sum2 := arr[length-3] * arr[length-2] * arr[length-1]
fmt.Println(sum1, sum2)
if sum1 > sum2 {
newArr = append(newArr, arr[0], arr[1], arr[length-1])
} else {
newArr = append(newArr, arr[length-3], arr[length-2], arr[length-1])
}
}
return newArr
}
func main() {
//s1 := []int{6,8,3,-9,-6,0,7} //[-9 -6 0 3 6 7 8]
//s1 := []int{0,-9,-4,-6,-2,-8}
//s1 := []int{0, -9, -4, -6, -2, -8}
s1 := []int{-9,-30,0,3,4,2,10,69}
//先排序
new := insertSort(s1)
fmt.Println("排序后的数组:", new)
//对数组的元素进行判断
new1 := paresArr(new)
fmt.Println(new1)
}