演算法 algorithms 基礎之 選擇排序

2021-07-24 21:31:35 字數 1808 閱讀 5124

**:演算法(algorithms)基礎之:選擇排序 — 沒那麼簡單的部落格

陣列a中有n個數,首先找出a中的最小元素並將其與a[1]中的元素進行交換。接著,找出a中的次最小原始並將其與a[2]中的元素進行交換。對a中前n-1個元素按該方式繼續。該演算法稱為選擇演算法。

假定陣列a[5, 2, 4, 6, 1, 3]是需要排序的資料, 長度為6,用php實現如下:

<?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

)

用go實現如下:

/*

選擇排序[正序]

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個輸入是指演...