PHP 陣列排序(氣泡排序、選擇排序);陣列查詢(順序查詢、二分查詢)
<?php header('Content-Type:text/html;charset=utf8'); //二分查詢 //有2個前提:1.陣列已經排好序;2.是連續的索引陣列,即下標為0,1,2,3,4,5... class Search{ /** * * @param arr:已經排好序,而是連續的索引的陣列 * @param n:查詢的數 * @param statr:從start位開始查詢 * @param end:查詢到end位結束 * * @return 1.查詢數在陣列中的位置 2.false */ public function twoPointsSearch($arr,$n,$start,$end){ //如果引數$start>$end,直接返回false if($start>$end){ return false; } $mid=floor(($start+$end)/2);//返回$start和$end的中間值,如果有小數,捨去小數保留整數 if($arr[$mid]=$n){ return $mid; }else if ($arr[$mid]>$n) { //如果中間值大於需要查詢的值 $end=$mid-1; return self::twoPointsSearch($arr,$n,$start,$end); }else{ //如果中間值小於需要查詢的值 $start=$mid+1; return self::twoPointsSearch($arr,$n,$start,$end); } } } $arr = array(3,4,5,15,19,21,25,28,30,30,33,38,44,51,52,55,60,77,80,82,83); $n =33; $len=count($arr);//count():計算陣列長度 $search=new Search(); $result=$search->twoPointsSearch($arr,$n,0,$len-1); if ($result===false) { echo "沒有找到"; }else{ echo "{$n}在陣列arr中的位置為:".$result; }
相關推薦
PHP 陣列排序(氣泡排序、選擇排序);陣列查詢(順序查詢、二分查詢)
<?php header('Content-Type:text/html;charset=utf8'); //二分查詢 //有2個前提:1.陣列已經排好序;2.是連續的索引陣列,即下標為0,1,2,3,4,5... class Search{ /** * * @param arr:已經排好序
PHP 常見4種排序 氣泡排序、選擇排序、插入排序、快速排序
1、氣泡排序 原理:對一組資料,比較相鄰數的大小,將值大的放到後面。 <?php // 氣泡排序 function bubbleOrder($arr) { $count = count($arr); $temp = 0; // 外層控制排序次數 for ($
Java中陣列氣泡排序、選擇排序、二分查詢的詳細分析
前言:儘管在實際開發中,我們通過Arrays工具類就可以便利地對陣列進行排序和查詢的操作,但是掌握氣泡排序、選擇排序、二分法查詢的思想對於程式設計來說還是極其重要的,在很多場景都會用到。希望通過這篇部落格的分析能給大家帶來收穫。 主題:陣列的排序和查詢 1、冒泡法排序:
陣列、氣泡排序、選擇排序
一、一維陣列 程式: 結果: 總結: (1)12行的結果為40:系統會為一個數組分配一段連續的儲存空間。每個資料元素佔用的位元組數,就是基型別的位元組數,一個元素佔4個位元組。int array1[10];由於陣列1是int型的(佔四個位元組),而且陣列1裡有
氣泡排序法、選擇排序法、快速排序法三者的效率對比,包括陣列的儲存與載入
排序演算法: // 冒泡 void sorta(int array[], int n) { for (int i = 0; i < n; i++) { for (int t = i + 1; t < n; t++) { if (array[
陣列排序【氣泡排序、快速排序、選擇排序】
在工作中遇到了排序問題,隨後就總了了幾種排序方式【氣泡排序、快速排序、選擇排序】 【氣泡排序】 原理:比較相鄰的兩個元素,將值大的交換至右側 // 氣泡排序:比較相鄰的兩個元素,將值大的交換至右邊 var arr = [1,20,5,62,8,2,45]; fu
java實現陣列的氣泡排序、選擇排序程式碼
陣列排序之氣泡排序: 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處 package cn.lgt.sortarray; public class MaoPaoSort {
一維陣列常見的三種排序、氣泡排序、選擇排序、插入排序、Arrays內建排序
一維陣列的 氣泡排序 選擇排序 插入排序 Arrays內建排序 package arithmetic; import java.util.Arrays; /** * 一維陣列的排序 * 氣泡排序 * 選擇排序 * 插
Java學習路程之陣列與排序(氣泡排序、選擇排序、折半查詢)
一.陣列 1.一維陣列:儲存一組相同資料型別的元素. 2.陣列的三種宣告方式 array為陣列的命名 資料型別表示的是陣列中元素的資料型別 int[] array = new int[陣列長度]; int[] array =
Java-陣列排序之氣泡排序、選擇排序、折半查詢
氣泡排序 核心思想:相鄰兩個數比較大小,然後換位 public static void main(String[] args) { int[] name = new int[] {12,5
PHP冒泡排序、選擇排序、插入排序
while blog div clas HP 下標 位置 設置 所在 $arr = [1, 8, 7, 5, 4, 2, 11, 9, 20]; 冒泡排序: for ($i = 0; $i < count($arr); $i ++) { for ($j =
氣泡排序、選擇排序、二分查詢、插入排序
氣泡排序、選擇排序、二分查詢、插入排序 氣泡排序 氣泡排序的思想就是兩兩比較,按從小到大輸出的話,兩個值相比,較小的放前大的放後,那麼第一次兩兩比較結束後,最大值放在末尾,接下來再繼續兩兩比較,但是這一次不需要比較到最後,因為最後已經是最大值了,所以每次兩兩比較結束後,都會少比一次,
java之氣泡排序、選擇排序、快速排序、插入排序、java8排序
package cn.com.javatest.sort; import org.apache.commons.lang3.StringUtils; /** * 常用排序方法 * * @author: Rodge * @time: 2018年10月4日 下午5:16:22 * @ve
排序演算法(直接插入、氣泡排序、選擇排序、快速排序、希爾排序、堆排序、歸併排序)
main函式 int main() { int data[] = {1,2,6,3,4,7,7,9,8,5}; //bubble_sort(data,10); //select_sort(data,10); Insert_Sort(data,10); fo
《資料結構與演算法》之排序演算法(氣泡排序、選擇排序)
排序(Sorting) 是計算機程式設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。 排序演算法分類: 一、非線性時間比較類排序 1、交換排序(氣泡排序、快速排序) 2、插入排序(簡單插入排序、布林排序) 3、選擇排序(簡單選擇
氣泡排序、選擇排序、插入排序、快速排序演算法耗時測試
import java.util.*; public class Test1 { public static void main(String[] args) throws Exception{ int[] arr1=new int[20000]; for(int i=0;i&l
Python三種排序演算法的執行速度對比(快速排序、氣泡排序、選擇排序)
最近看了一下快速排序演算法,據說速度比其他的排序演算法快,於是寫了三個排序演算法對比一下,分別是氣泡排序,快速排序,選擇排序,以下是三個排序演算法的程式碼: 氣泡排序 BubbleSort.py # -*- coding:utf8 -*- def Sort(list
資料結構--氣泡排序、歸併排序、快速排序、選擇排序、插入排序(Java版)
一、氣泡排序 1、思路 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 針對所有的元素重複以上的步驟,直到沒有任何一對元素需要比較。 2、實現 /** * 排序演算法的介面 * @author hoaven */ pu
小川學習筆記--JAVA一個類實現多種排序(氣泡排序、快速排序、選擇排序、插值排序)
JAVA氣泡排序、快速排序、選擇排序、插值排序 作者:程式猿劉小川 public static void main(String[] args) //主程式 { int data[] = {5,7,1,0,2,3,4,66,9,8};
《C語言》氣泡排序、快速排序、選擇排序、堆排序、桶排序、插入排序。
氣泡排序、快速排序、選擇排序、堆排序、桶排序、插入排序。 Main.c MySort.h MySort.c Main.c #include <time.h> #include "MySort.h" #define N 10