1. 程式人生 > >php選擇排序法

php選擇排序法

1、選擇排序法例項詳解:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>

<?php 
//忽略notice級錯誤提示
//error_reporting(E_ALL^E_NOTICE); 
?>
<?php 
/* 選擇排序法的思路:就是再第一次迴圈中,假設第一個數是最小的;然後跟第二個數比較,一直比到最後,找出最小值,然後把最小值跟第一個數的位置互換;再進行下一次迴圈,找出最小值跟第二個位置的數互換;一直迴圈陣列的個數減去1次;陣列就成了有序的了 */
//用函式封裝選擇排序法
function selectSort(&$arr)  
//注意此處要加地址傳遞符號;因為陣列預設傳遞的是值,不是地址;若不地址傳遞,排序的是$arr而不是$asd。
{
	//$arr = array(1,5,3,9,4,8,12,3,0,7,7.6,3.4,6);
	//定義一箇中間變數
	$temp = 0;
	//升序排序
	for($i=0;$i<count($arr)-1;$i++)
	{
		//假設$i就是最小的數
		$minVal=$arr[$i];
		//記錄我認為最小數的下標
		$minIndex=$i;
		for($j=$i+1;$j<count($arr);$j++)
		{	//如果我認為的最小值不是最小
			if($minVal>$arr[$j])
			{
				$minVal = $arr[$j];
				$minIndex = $j;
			}
		}
		//最後交換
		$temp = $arr[$i];
		$arr[$i] = $arr[$minIndex];
		$arr[$minIndex] = $temp;
	}	
}
$asd = array(1,0,2,9,3,8,4,7,5,6);
//呼叫選擇排序法的函式
selectSort($asd);
//輸出排序後陣列  升序顯示
foreach($asd as $key=>$key_value)
{
	echo '$asd['.$key."]=".$key_value."<br>";
}
?>
</body>
</html>


相關推薦

php選擇排序

1、選擇排序法例項詳解: <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> </head> <body

PHP選擇排序

相同 大循環 如果 最小值 alt src str pan AS 說明:   通過假設一個最小數的key,來逐個比較後面的值,如果假設的值大於後面的值,則互換位置。 示例: <?php $a = array(2,13,42,34,56,23,67,365,87

大神之路----排序(選擇排序)

system 一個數 數組 public 由於 空間復雜度 結果 代碼 選擇 選擇排序法,顧名思義,就是把特定的數據選擇出來進行排序. 選擇排序法有兩種方式 在所有的數據中,當由大到小排序,那麽就將最大值放到第一個位置 如果由小到大排序,那麽就將最小值放到第一個位置 以由

JS實現插入排序選擇排序

排序算法 ble inner 基本算法 出了 clas 一點 暫時 while   試著寫了寫,但對輸出方式不太熟,所以註釋部分的沒能成功(我猜測是數據被覆蓋了,所以最後運行結果都是‘6‘),或許不能用innerHTML來進行輸出,暫時不管了,改天再研究研究JavaScri

之旅 | 選擇排序

數據 影響 前端 www clas 管理系統 index 管理系 不同的 算法之旅 | 選擇排序法 HTML5學堂-碼匠:數據快速的計算與排序,與前端頁面性能有直接的關系。由於排序的算法有很多,在本次“算法系列”的分享當中,我們先從簡單易上手的選擇排序法開始,其它的排序算法

選擇排序

最好 tps 程序設計 重復執行 void lec 冒泡 需要 挑戰程序設計競賽 選擇排序法會在每一步中選出一個最小值,進而完成排序。與插入排序法和冒泡排序法一樣,選擇排序法的各個計算步驟中,數組也分成“已排序部分”和“未排序部分”。 具體流程: 重復執行 n-1(數組長

選擇排序對數組進行排序

clas ret rgs string src image OS index png package selectionSort; import java.util.Arrays; public class Exam { //使用選擇排序法對數組進行排序 pu

選擇排序、氣泡排序、插入排序、系統提供的底層sort方法排序之毫秒級比較

我的程式碼: package PlaneGame;/** * 選擇排序法、氣泡排序法、插入排序法、系統提供的底層sort方法排序之毫秒級比較 * @author Administrator */import java.util.Arrays;public class Newtest { public sta

冒泡選擇排序 Java實現

   最近作業中老師要求,定義一個有100位元素的陣列,要求給陣列排序,通過冒泡和選擇排序法實現。在這裡我整理了這兩種演算法,不過為了清楚,我使用了隨機數生成了8位元素的陣列,進行排序和輸出。 public class Paixu_both { public stat

用python實現選擇排序、氣泡排序、插入排序

氣泡排序法 l = [10, 1, 18, 30, 23, 12, 7, 5, 18, 17] for n in range(len(l)-1): for i in range(len(l)-n-1): if l[i] > l[i+1]:

Java常用的八種排序演算法與程式碼實現(一):氣泡排序、插入排序選擇排序

這三種排序演算法適合小規模資料排序 ---   共同點:基於比較,時間複雜度均為O(n2),空間複雜度均為O(1)(原地排序演算法)   不同點:插入排序和氣泡排序是穩定的排序演算法,選擇排序不是 ---   穩定排序演算法:可以保持數值相等的兩個物件,在排序之

選擇排序-Java實現

public static void selectSort(int[] a) { int temp; int index; for (int i = 0; i < a.length - 1; i++) { for (int j = i + 1; j < a.leng

C#面試題:選擇排序

選擇排序法:個人認為,選擇排序法是一種改良版的氣泡排序法。 大家可以比較一下氣泡排序法的程式碼,和選擇排序法的程式碼。 void SelectSort(int[] arr){     for(int i=0;i<arr.Length;i++){         

氣泡排序選擇排序、插入排序

一貫作風,不說廢話,程式碼走起 先是測試程式碼: @Test public void test1() { //隨機生成length為10 的陣列 int[] arr=new int[10]; for (int i=0;i<arr.length;i++) {

【Java】排序方法1-----選擇排序

對Java的排序方法進行總結,第一種,比較簡單,易理解的方法:選擇排序法,順序排列;遍歷整個陣列,將最大值放到陣列最後面,然後將剩下的元素再遍歷,再講第二大的元素放到倒數第2位…最後將最小的元素放在陣列

氣泡排序選擇排序、快速排序三者的效率對比,包括陣列的儲存與載入

排序演算法: // 冒泡 void sorta(int array[], int n) { for (int i = 0; i < n; i++) { for (int t = i + 1; t < n; t++) { if (array[

(c語言)選擇排序和氣泡排序

問題描述: 給定一個數組(或者輸入一個數組),分別運用選擇排序法和氣泡排序法將所要的結果輸出。 程式分析:                                         選擇排序 1>.對於選擇排序,首先理解排序的思想。給定一個數組,這種思想首先假定

簡單的排序演算法(插入排序、氣泡排序選擇排序

#include <iostream> #include<algorithm> #include<stdio.h> using namespace std; int A[100]; int N,v; void insertionSort(int A[], int N); v

PHP 選擇排序

作為一個初級phper,平時用到的演算法很少,但是基本的幾種演算法還是要掌握的,比如選擇排序。 需求:分別用選擇排序演算法將下面陣列中的值按照從小到的順序進行排序。  要排序的陣列:$arr(1,

排序(二):選擇排序

前言:有時候,我會覺得,凡事只要有個目標,便可以朝著它努力,這樣必定會有結果;可是,慢慢的我發現,在生活中,太多的我們追求的事情,是沒有目標的,這也正是我現階段困惑的東西,我只能一步步的去試探,試圖發現