**:演算法(algorithms)基礎之:選擇排序 — 沒那麼簡單的部落格
陣列a中有n個數,首先找出a中的最小元素並將其與a[1]中的元素進行交換。接著,找出a中的次最小原始並將其與a[2]中的元素進行交換。對a中前n-1個元素按該方式繼續。該演算法稱為選擇演算法。假定陣列a[5, 2, 4, 6, 1, 3]是需要排序的資料, 長度為6,用php實現如下:
用go實現如下:<?php
/** * 選擇排序[正序]
* author: n******
* date: 2016/11/23
* link:
*//**
* 選擇排序 正序
*@param $arr
*/function
selectionsort
($arr)
}if($min != $i)
}}//記錄排序步驟
function
process
(&$step, $arr = array())
$arr = [5, 2, 4, 6, 1, 3];
selectionsort($arr);
執行結果如下:
第1步排序:array
( [0] => 1
[1] => 2
[2] => 4
[3] => 6
[4] => 5
[5] => 3
)第2步排序:array
( [0] => 1
[1] => 2
[2] => 3
[3] => 6
[4] => 5
[5] => 4
)第3步排序:array
( [0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
/*
選擇排序[正序]
author: n******
date:2023年11月23日15:24:03
link:
*/package main
import (
"fmt"
)/*追蹤排序步驟*/
func showstep(args int, step *int)
/*選擇排序*/
func selctionsort(arr int)
}if min != i
}}func main()
selctionsort(arr)
}
執行結果:
d
:/go/bin/go.exe build -i [d
:/go_workspace/algorithms/selection_sort]
success
: process exited with code 0.
d:/go_workspace/algorithms/selection_sort/selection_sort.exe [d
:/go_workspace/algorithms/selection_sort]
第1步排序結果:[124
653]第2步排序結果:[123
654]第3步排序結果:[123
456]success
: process exited with code 0.
演算法 algorithms 基礎之 插入排序
演算法 algorithms 基礎之 插入排序 沒那麼簡單的部落格 插入排序,對於少量的元素的資料,它是乙個有效的演算法。它的工作方式就像許多人排序一副撲克牌。開始時,我們的左手為空並且桌子上的牌面向下。然後,我們每次從桌上拿走一張牌並將它插入左手中正確的位置。為了找到一張牌的正確位置,我們從右往左...
STL演算法 Algorithms 極值
stl演算法 algorithms 極值 1 min 返回兩個兩個引數中的最小值 原型 template const t min const t a,const t b template const t min const t a,const t b,compare comp 示例 min exam...
C 基礎之演算法
演算法 一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。其中演算法有五個特徵 1 有窮性 演算法中每條指令的執行次數有限,執行每條指令的時間有限 2 確切性 演算法的每一步驟必須有確切的定義 3 輸入 乙個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演...