Last active
September 22, 2015 09:00
-
-
Save taji-taji/795c3af51a5dfeabc2ca to your computer and use it in GitHub Desktop.
【ソートアルゴリズム】今さらだけどソートを復習しよう(バブルソート) ref: http://qiita.com/taji-taji/items/62db3bcf538400adc1e9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ソート前の値: [6 4 2 7 9 0 5 3 1 8] | |
1巡目 | |
[6 4 2 7 9 0 5 3 (1) (8)] | |
[6 4 2 7 9 0 5 (3) (1) 8] > 入れ替え! | |
[6 4 2 7 9 0 (5) (1) 3 8] > 入れ替え! | |
[6 4 2 7 9 (0) (1) 5 3 8] | |
[6 4 2 7 (9) (0) 1 5 3 8] > 入れ替え! | |
[6 4 2 (7) (0) 9 1 5 3 8] > 入れ替え! | |
[6 4 (2) (0) 7 9 1 5 3 8] > 入れ替え! | |
[6 (4) (0) 2 7 9 1 5 3 8] > 入れ替え! | |
[(6) (0) 4 2 7 9 1 5 3 8] > 入れ替え! | |
1巡目終了後の値: [0 6 4 2 7 9 1 5 3 8] | |
2巡目 | |
[0 6 4 2 7 9 1 5 (3) (8)] | |
[0 6 4 2 7 9 1 (5) (3) 8] > 入れ替え! | |
[0 6 4 2 7 9 (1) (3) 5 8] | |
[0 6 4 2 7 (9) (1) 3 5 8] > 入れ替え! | |
[0 6 4 2 (7) (1) 9 3 5 8] > 入れ替え! | |
[0 6 4 (2) (1) 7 9 3 5 8] > 入れ替え! | |
[0 6 (4) (1) 2 7 9 3 5 8] > 入れ替え! | |
[0 (6) (1) 4 2 7 9 3 5 8] > 入れ替え! | |
2巡目終了後の値: [0 1 6 4 2 7 9 3 5 8] | |
3巡目 | |
[0 1 6 4 2 7 9 3 (5) (8)] | |
[0 1 6 4 2 7 9 (3) (5) 8] | |
[0 1 6 4 2 7 (9) (3) 5 8] > 入れ替え! | |
[0 1 6 4 2 (7) (3) 9 5 8] > 入れ替え! | |
[0 1 6 4 (2) (3) 7 9 5 8] | |
[0 1 6 (4) (2) 3 7 9 5 8] > 入れ替え! | |
[0 1 (6) (2) 4 3 7 9 5 8] > 入れ替え! | |
3巡目終了後の値: [0 1 2 6 4 3 7 9 5 8] | |
4巡目 | |
[0 1 2 6 4 3 7 9 (5) (8)] | |
[0 1 2 6 4 3 7 (9) (5) 8] > 入れ替え! | |
[0 1 2 6 4 3 (7) (5) 9 8] > 入れ替え! | |
[0 1 2 6 4 (3) (5) 7 9 8] | |
[0 1 2 6 (4) (3) 5 7 9 8] > 入れ替え! | |
[0 1 2 (6) (3) 4 5 7 9 8] > 入れ替え! | |
4巡目終了後の値: [0 1 2 3 6 4 5 7 9 8] | |
5巡目 | |
[0 1 2 3 6 4 5 7 (9) (8)] > 入れ替え! | |
[0 1 2 3 6 4 5 (7) (8) 9] | |
[0 1 2 3 6 4 (5) (7) 8 9] | |
[0 1 2 3 6 (4) (5) 7 8 9] | |
[0 1 2 3 (6) (4) 5 7 8 9] > 入れ替え! | |
5巡目終了後の値: [0 1 2 3 4 6 5 7 8 9] | |
6巡目 | |
[0 1 2 3 4 6 5 7 (8) (9)] | |
[0 1 2 3 4 6 5 (7) (8) 9] | |
[0 1 2 3 4 6 (5) (7) 8 9] | |
[0 1 2 3 4 (6) (5) 7 8 9] > 入れ替え! | |
6巡目終了後の値: [0 1 2 3 4 5 6 7 8 9] | |
7巡目 | |
[0 1 2 3 4 5 6 7 (8) (9)] | |
[0 1 2 3 4 5 6 (7) (8) 9] | |
[0 1 2 3 4 5 (6) (7) 8 9] | |
7巡目終了後の値: [0 1 2 3 4 5 6 7 8 9] | |
8巡目 | |
[0 1 2 3 4 5 6 7 (8) (9)] | |
[0 1 2 3 4 5 6 (7) (8) 9] | |
8巡目終了後の値: [0 1 2 3 4 5 6 7 8 9] | |
9巡目 | |
[0 1 2 3 4 5 6 7 (8) (9)] | |
9巡目終了後の値: [0 1 2 3 4 5 6 7 8 9] | |
ソート後の値: [0 1 2 3 4 5 6 7 8 9] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"strconv" | |
) | |
func main() { | |
arrayzor := []int{6, 4, 2, 7, 9, 0, 5, 3, 1, 8} | |
fmt.Printf("ソート前の値: %v\n", arrayzor) | |
// 要素数-1回 繰り返す | |
k := len(arrayzor) - 1 | |
for i := 0; i < k; i++ { | |
fmt.Printf("%v巡目\n", i+1) | |
// 最後の要素から順番に比較をする | |
for j := k; j > i; j-- { | |
// 出力する文字列の処理 | |
s := "[" | |
for key, val := range arrayzor { | |
if key == j-1 || key == j { | |
s = s + "(" + strconv.Itoa(val) + ")" | |
} else { | |
s = s + strconv.Itoa(val) | |
} | |
if key != k { | |
s = s + " " | |
} | |
} | |
// 一つ前の要素と比較 | |
if arrayzor[j-1] > arrayzor[j] { | |
// 一つ前の要素のほうが大きければ入れ替える | |
arrayzor[j-1], arrayzor[j] = arrayzor[j], arrayzor[j-1] | |
s = s + "] > 入れ替え!\n" | |
} else { | |
s = s + "]\n" | |
} | |
fmt.Printf("%s", s) | |
} | |
fmt.Printf("%v巡目終了後の値: %v\n\n", i+1, arrayzor) | |
} | |
fmt.Printf("ソート後の値: %v\n", arrayzor) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment