面試常用演算法

2021-08-21 09:50:33 字數 1000 閱讀 1488

function bubblesort($numbers) }}

return $numbers;

}for(int i=0;iarr[j])}}

void sort(int *a, int left, int right)

int i = left;

int j = right;

int key = a[left];

while(i < j)                               /*控制在當組內尋找一遍*/

a[i] = a[j];

/*找到乙個這樣的數後就把它賦給前面的被拿走的i的值(如果第一次迴圈且key是

a[left],那麼就是給key)*/

while(i < j && key >= a[i])

/*這是i在當組內向前尋找,同上,不過注意與key的大小關係停止迴圈和上面相反,

因為排序思想是把數往兩邊扔,所以左右兩邊的數大小與key的關係相反*/

a[j] = a[i];

}  a[i] = key;/*當在當組內找完一遍以後就把中間數key回歸*/

sort(a, left, i - 1);/*最後用同樣的方式對分出來的左邊的小組進行同上的做法*/

sort(a, i + 1, right);/*用同樣的方式對分出來的右邊的小組進行同上的做法*/

/*當然最後可能會出現很多分左右,直到每一組的i = j 為止*/

}<?php

function quicksort(&$arr)elseif($arr[$i]>$k)

}$x=quicksort($x);

$y=quicksort($y);

return array_merge($x,array($k),$y);

}else

}?>

function binarysearch(array $arr, $target)

#查詢失敗

return false;

}堆排序:

面試常用演算法

1.求陣列中和最大的子串行 2.快速排序 基本思想在於把排序物件分割為兩列子串行,而其中乙個子串行的值都大雨另一子串行,並且進一步遞迴排序所有子串行 static void run int data,int low,int high while i j 遞迴對比分割點元素都小的那個序列進行快速排序 ...

面試常用排序演算法

public class sort 因為最後結束的時候,j又被剪了一次,所以j要加1 插入 array j 1 temp 氣泡排序 public void bubblesort int array,int length 直接選擇排序 public void selectsort int array,...

面試常用演算法之排序

1 氣泡排序 bubblesort 氣泡排序是每次將亂序中的最大的數字通過兩兩交換的方式往後移動,直到序列有序為止。猶如水中的氣泡從下往上浮時,越來越大。該演算法共執行了n趟,每趟執行n i次比較,所以其複雜度為o n 2 基本的氣泡排序演算法程式如下所示 氣泡排序 void bubblesort ...