func TestShellSort(t *testing.T) { var b =[]string{"Sorter", "Orange", "Red", "Tank", "eneny", "X-man", "Angela", "Moon", "Peter", "Linkedin", "Extern"} var s ShellSort a := algorithms.NewStringSlice(b); for i:=0; i<len(a); i++{ fmt.Printf("%s ", a[i]); } fmt.Printf("\n") s.Sort(a) for i:=0; i<len(a); i++{ fmt.Printf("%s ", a[i]); } fmt.Printf("\n") fmt.Printf("a[] is sored? %v\n", s.IsSorted(a)) }
func TestBinarySearchTree2(t *testing.T) { var b = []string{"it", "was", "the", "best", "of", "times", "it", "was", "the", "worst", "of", "times", "it", "was", "the", "age", "of", "wisdom", "it", "was", "the", "age", "of", "foolishess", "it", "was", "the", "epoch", "of", "belief", "it", "was", "the", "epoch", "of", "incredulity", "it", "was", "the", "season", "of", "light", "it", "was", "the", "season", "of", "darkness", "it", "was", "the", "spring", "of", "hope", "it", "was", "the", "winter", "of", "despair"} var st SymbolTable a := algorithms.NewStringSlice(b) st = &BinarySearchTree{} minlen := 1 for i := 0; i < len(a); i++ { word := a[i] if len(word.(algorithms.String)) < minlen { continue } if !st.Contains(word) { st.Set(word, int(1)) } else { st.Set(word, st.Get(word).(int)+int(1)) } } max := algorithms.String(" ") st.Set(max, 0) iter := st.Keys() for iter.HasNext() { word := iter.Next().Value.(algorithms.String) if st.Get(word).(int) > st.Get(max).(int) { max = word } } fmt.Printf("%s %d\n", max, st.Get(max)) }