氣泡排序 選擇排序 插入排序以及二分法查詢演算法

2021-07-27 23:23:44 字數 2806 閱讀 3144

氣泡排序

氣泡排序(bubble sort,台灣譯為:泡沫排序或氣泡排序)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

選擇排序

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。以此類推,直到所有元素均排序完畢。

插入排序

插入排序(insertion sort)的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到o(1)的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

二分法查詢演算法

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。

package demo;

public class helloworld ;

int a = ;

//bubblesort(a);

binarysearch(a,5);

//selectsort(a);

//insertsort(a);

}//氣泡排序

public static void bubblesort(int a)}}

system.out.println("");

system.out.println("氣泡排序:");

for(int x : a)

}//選擇排序

public static void selectsort(int a)

}system.out.println("");

system.out.println("選擇排序:");

for(int k : a)

}//選擇排序1

public static void selectsort1(int a)

}//插入排序

public static void insertsort(int a)

a[y+1] = x;}}

system.out.println("");

system.out.println("插入排序:");

for(int k : a)

}//二分法查詢(遞迴)

public static void binarysearch(int a,int left,int right,int find)else

if(find > a[mid])else

if(find < a[mid])

}else

}//二分法查詢(迴圈)

public static void binarysearch(int a, int find)

int left = 0;

int right = a.length-1;

while(left <= right)else

if(find < a[mid])else

if(find > a[mid])

}system.out.print("沒找到");

}}

<?php

//氣泡排序法

function bubblesort($arr)}}

return

$arr;

}//選擇排序法1

function selectsort($arr)

}if($x != $arr[$i])

}return

$arr;

}//選擇排序法2

function selectsort1($arr)}}

return

$arr;

}//插入排序法

function insertsort($arr)

$arr[$y+1] = $x;}}

return

$arr;

}//二分法查詢(遞迴演算法)

function binarysearch($arr, $left, $right, $find)

if($arr[$mid] > $find)

if($arr[$mid] < $find)

}}//二分法查詢(迴圈演算法)

function binarysearch1($arr, $find)

$left = 0;

$right = count($arr)-1;

while($left

<= $right)elseif($arr[$mid] > $find)elseif($arr[$mid] < $find)

}}//$arr = array(2,10,333,11,1,22,100,20);

//$arr = bubblesort($arr);

$arr = array(1,2,3,4,5,6,7,8,9,10);

$arr = binarysearch1($arr,7);

echo

"";print_r($arr);

?>

其他不怎麼經常見到的演算法,改天再研究!

我的部落格:

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

氣泡排序,選擇排序,插入排序 小規模的檔案以及基本有序的檔案,插入排序的效能比快速排序的效能更為有效一些,實際上,插入排序通常也做快速排序實現的一部分。1 氣泡排序 packagedatastrut public classbubblesort public voidinsert longvalue...

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

編寫 include void println int array,int len 列印給定長度的陣列 printf n void swap int array,int i,int j 交換陣列中兩個位置的元素 void selectionsort int array,int len o n n 對...

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

氣泡排序是每輪比較未排序部分,從第乙個元素開始找最值,比較相鄰數字,依次往後推移,最終將最值置於最右。假設有n個數,外迴圈迴圈n 1遍,內迴圈是n 1在減去當前是第幾次外迴圈。void bubble sort mytype a,int n n為陣列長度 插入排序是從第二個元素開始快取,然後向前比較,...