package main
import
"fmt"
//定義乙個排序的介面
type sortinte***ce inte***ce
//定義額排序的結構體
type sortor struct
func main()
learnsort := sortor
learnsort.sort(arry)
fmt.println(learnsort.name, arry)
}//結構體實現介面,巢狀迴圈實現氣泡排序
func(sorter sortor) sort(arry int)}}}
快速排序原理不多廢話,直接上**
package main
import
"fmt"
func main()
sort2(arry,0, len(arry)-1)
fmt.println(arry)
}//快速排序**
func sort2(arry int, low int, high int)
if arry[endindex] <= key
for endindex > startindex && arry[startindex] <= key
if arry[startindex] >= key
}if startindex > low
if endindex < high
}//結果是[3 3 6 4 7 8 12 18 15]
package main
import
"fmt"
func main()
sort3(arry)
fmt.println(arry)
}//從前往後排,篩選出最小的往前移動
func sort3(arry1 int)
}if i != k
}}
package main
import (
"fmt"
)//堆排序
//s[0]不用,實際元素從角標1開始
//父節點元素大於子節點元素
//左子節點角標為2*k
//右子節點角標為2*k+1
//父節點角標為k/2
func heapsort(s int)
//下沉排序
for n >1
}//下沉(由上至下的堆有序化)
func sink(s int, k, n int)
if i < n && s[i+1] > s[i]
if s[k] >= s[i]
swap(s, k, i)
k = i
}}func swap(s int, i int, j int)
func main()
fmt.println(s[1:])
heapsort(s)
fmt.println(s[1:])
}
package main
import(
"container/list"
"fmt"
)func main()
fmt.println(s)
insertionsort(s)
fmt.println(s)
}func insertionsort(s int)
for j :=1; j < n; j++
}}//交換
func swap(slice int, j int, j int)
希爾排序的實質就是分組插入排序,該方法又稱縮小增量排序,因dl.shell於2023年提出而得名。
該方法的基本思想是:先將整個待排元素序列分割成若干個子串行(由相隔某個「增量」的元素組成的)分別進行直接插入排序,然後依次縮減增量再進行排序,待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。因為直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的,因此希爾排序在時間效率上比前兩種方法有較大提高。
合併排序演算法是用分治策略實現對n個元素進行排序的演算法。其基本思想是:
將待排序元素分成大小大致相同 的兩個子集合,分別 對兩個子集合進行排序,最終將排好序的子集合合併成所要求的排好序的集合。
一句話概括就是將一段資料分成前後兩個的陣列進行大小比較(分治到每乙個小塊都是2個),然後再合併進行比較
package main
import
"fmt"
func main()
fmt.print("排序前")
fmt.println(arr01)
mergesort(arr01,0,len(arr01)-1)
fmt.print("排序後")
fmt.println(arr01)
}func mergesort(arr int,low,high int)
}func merge1(arr int,low,mid,high int)
arrright[rightlen]=99999
//哨兵牌
fmt.println(arrright)
fmt.println(arrleft)
i,j:=0
,0for k:=low;k<=high;k++else}}
r語言qsignrank函式用法 R語言常用函式名
一 資料管理 vector 向量 numeric 數值型向量 logical 邏輯型向量 character 字元型向量 list 列表 data.frame 資料框 c 連線為向量或列表 length 求長度 subset 求子集 seq,from to,sequence 等差序列 rep 重複 ...
常成員,常函式,常物件
知識點1.常物件中的任何型別的資料成員 無論私有還是公有 的值都不能被改變。知識點2.常物件能呼叫的 1.公有的常成員函式 2.建構函式 3.公有的靜態函式 知識點3.常物件與常成員函式只有同時存在才都有意義 知識點4.普通物件既可以呼叫常成員函式,也可以呼叫非常成員函式 知識點5.常成員函式不能更...
常物件,常成員函式,常引用
宣告顯示 const 型別說明符 物件名 常物件的資料成員值在物件的整個生存期間不能被改變,即就是,常物件必須進行初始化,而且不能被更新。宣告形式 型別說明符 函式名 參數列 const 注意 1.在函式定義部分也需要帶const關鍵字。2.乙個常物件只能呼叫它的常成員函式,是常物件唯一的對外介面方...