查看: 1996|回复: 0

[PHP实例] 查找排序之多语言编程(JS/PHP/JAVA)

发表于 2017-9-30 10:25:30
句号论坛

三种方式写了下常见的查找和排序,思想的本质是一致的,语言的运用有所不同罢了
PS:尴尬。真的有必要随时切换语言来编程,否则还想个半天.就跟前后台的模板引擎一样,花样太多.

JS 二分查找
  1. /**
  2. * @param v Number 要查找的值
  3. * @param a Array 数组(有序的:升序,譬如[2,3,4])
  4. * @param return 所在下标;-1,则不存在
  5. **/
  6. function erFen(v,a){
  7. var start = 0,
  8. end = a.length-1;
  9. while(start<=end){
  10. var index = Math.floor((start+end)/2);
  11. if(v>a[index]){
  12. start = index+1;
  13. }else if(v<a[index]){
  14. end = index-1;
  15. }else{
  16. return index;
  17. }
  18. }
  19. return -1;
  20. }
复制代码
PHP 选择排序
  1. /**
  2. * @param [type] $arr 数组
  3. * @return [type]
  4. */
  5. function select($arr){
  6. $cnt = count($arr);
  7. for ($i=0; $i < $cnt; $i++) {
  8. for ($j=$i+1; $j < $cnt; $j++) {
  9. // 从小到大排序
  10. if($arr[$i]>$arr[$j]){
  11. $arr = exchange($i,$j,$arr);
  12. }
  13. }
  14. }
  15. return $arr;
  16. }
  17. /**
  18. * 数组内元素交换
  19. * @param [type] $arr [数组]
  20. * @param [type] $i [待交换的元素下标]
  21. * @param [type] $j [待交换的元素下标]
  22. */
  23. function exchange($i,$j,$arr){
  24. $arr[$i] = $arr[$i]^$arr[$j];
  25. $arr[$j] = $arr[$i]^$arr[$j];
  26. $arr[$i] = $arr[$i]^$arr[$j];
  27. return $arr;
  28. }
复制代码
JAVA 冒泡排序
  1. import java.util.Arrays;
  2. public class Tools {
  3. public static void main(String []args) {
  4. int[] arr = {1,6,-2};
  5. System.out.print(Arrays.toString(bubble(arr)));
  6. }
  7. public static int[] bubble(int[] arr){
  8. int cnt = arr.length;
  9. for (int i = 0; i<cnt; i++) {
  10. for (int j=0;j<cnt-1-i; j++) {
  11. if(arr[j]>arr[j+1]){
  12. exchange(j,j+1,arr);
  13. }
  14. }
  15. }
  16. return arr;
  17. }
  18. /**
  19. * 数组内元素交换
  20. * @param [type] arr [数组]
  21. * @param [type] a [待交换的元素下标]
  22. * @param [type] b [待交换的元素下标]
  23. */
  24. public static void exchange(int a,int b,int[] arr){
  25. int temp = arr[a];
  26. arr[a] = arr[b];
  27. arr[b] = temp;
  28. }
  29. }
复制代码


太阳http代理AD
回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条