go中斐波切纳数列

来源:互联网 发布:用户行为数据采集 编辑:程序博客网 时间:2024/06/02 06:25
package mainimport ("fmt""runtime"// "time")func main() {runtime.GOMAXPROCS(1)fmt.Println(sum(5))fmt.Println(amount(5))fmt.Println(addAll(5))fmt.Println(addNumbers(10))fmt.Println(addNumbers2(10))fmt.Println(sort([]int{1, 9, 5, 7, 13, 69, 4, 7, 2, 54, 9, 12, 69}))}// 1,1,2,3,5func sum(n int) int {if n == 1 || n == 2 {return 1}return sum(n-1) + sum(n-2)}// 1,1,2,3,5// 性能更佳func amount(n int) int {if n == 1 || n == 2 {return 1}a, b := 1, 1for i := 3; i < n; i++ {a, b = b, a+b}return a + b}// 1+2+3+4+5func addAll(n int) int {var m int = 0for i := 1; i <= n; i++ {m += i}return m}// 1+1+2+3+5+8+13func addNumbers(n int) int {a, b := 1, 1slice := []int{1, 1}sum := 0for i := 3; i <= n; i++ {a, b = b, a+bslice = append(slice, b)}for _, v := range slice {sum += v}return sum}// 1+1+2+3+5+8+13func addNumbers2(n int) int {a, b := 1, 1sum := a + bfor i := 3; i <= n; i++ {a, b = b, a+bsum += b}return sum}// 冒泡排序func sort(arr []int) []int {for i := 0; i < len(arr)-1; i++ {for k := i + 1; k < len(arr); k++ {if arr[i] > arr[k] {arr[i], arr[k] = arr[k], arr[i]}}}return arr}


第二种方法性能更好!

                                             
0 0
原创粉丝点击