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

JS 二分查找

/**
* @param v Number 要查找的值
* @param a Array  数组(有序的:升序,譬如[2,3,4])
* @param return   所在下标;-1,则不存在
**/
function erFen(v,a){
    var start = 0,
          end = a.length-1;
    while(start<=end){
        var index = Math.floor((start+end)/2);
        if(v>a[index]){
            start = index+1;
        }else if(v<a[index]){
            end = index-1;
        }else{
            return index;
        }
    }
    return -1;
}

PHP 选择排序

    /**
     * @param  [type]  $arr 数组
     * @return [type]       
     */
    function select($arr){
        $cnt = count($arr);
        for ($i=0; $i < $cnt; $i++) { 
            for ($j=$i+1; $j < $cnt; $j++) { 
                // 从小到大排序
                if($arr[$i]>$arr[$j]){
                    $arr = exchange($i,$j,$arr);
                }
            }
        }
        return $arr;
    }

    /**
     * 数组内元素交换
     * @param  [type] $arr [数组]
     * @param  [type] $i    [待交换的元素下标]
     * @param  [type] $j    [待交换的元素下标]
     */
    function exchange($i,$j,$arr){
        $arr[$i] = $arr[$i]^$arr[$j];
        $arr[$j] = $arr[$i]^$arr[$j];
        $arr[$i] = $arr[$i]^$arr[$j];
        return $arr;
    }

JAVA 冒泡排序

    import java.util.Arrays;

    public class Tools {
        public static void main(String []args) {
            int[] arr = {1,6,-2};
            System.out.print(Arrays.toString(bubble(arr)));
        }
        
        public static int[] bubble(int[] arr){
            int cnt = arr.length;
            for (int i = 0; i<cnt; i++) {
                for (int j=0;j<cnt-1-i; j++) {
                    if(arr[j]>arr[j+1]){
                        exchange(j,j+1,arr);
                    }
                }
            }
            return arr;
        }
        
        /**
         * 数组内元素交换
         * @param  [type] arr [数组]
         * @param  [type] a    [待交换的元素下标]
         * @param  [type] b    [待交换的元素下标]
         */
        public static void exchange(int a,int b,int[] arr){
            int temp = arr[a];
            arr[a] = arr[b];
            arr[b] = temp;
        }
     }
     

Lin945
211 声望6 粉丝

技术沉淀还是很有必要的,尽量多写写。