一丶题目要求
已知有个排序好(升序)的数组,要求插入一个元素,最后打印该数组,顺序依然是升序
二丶代码
package main
import (
"fmt"
)
//已知有个排序好(升序)的数组,要求插入一个元素,最后打印该数组,顺序依然是升序
//append方法
func insertArr(arr [10]int , num int)[]int{
//创建index变量记录num插入的下标值,初始值为-1,如果没有值比num大的话,直接插入最后面
index := -1
var splicearr = []int{}
for j := 0 ; j < 10 ; j++{
if arr[j] > num {
index = j
break
}
}
//index == -1 就是num是数组里面最大,直接追加
if index == -1{
splicearr = append(arr[:], num)
}else{
//先插入数组比num小的部分
splicearr = append(splicearr, arr[:index]...)
//插入num
splicearr = append(splicearr, num)
//插入数组比num大的部分
splicearr = append(splicearr, arr[index:]...)
}
return splicearr
}
//copy方法
func copyArr(arr [10]int, num int)[]int{
index := -1
var num1 = []int{num}
var splicearr = make([]int, len(arr)+1)
for j := 0 ; j < 10 ; j++{
if arr[j] > num {
index = j
break
}
}
if(index == -1){
copy(splicearr,num1)
copy(splicearr[1:],arr[:])
}else{
copy(splicearr[0:index], arr[0:index])
copy(splicearr[index:index+1],num1)
copy(splicearr[index+1:],arr[index:])
}
return splicearr
}
func main(){
arr := [10]int{1,4,7,9,12,23,34,56,67,99}
fmt.Println("zheshi:",insertArr(arr, 5))
fmt.Println("zheshi2:",copyArr(arr, 5))
}
浙公网安备 33010602011771号