JAVA自定义数组工具类

来源:互联网 发布:ubuntu wine 使用 编辑:程序博客网 时间:2024/06/06 08:29

从进入大学到现在准备出外面实习,可以说时间并不长。大学的时间特别容易过去,颓废的我们有很多种方法可以浪费时间,看电影、打游戏、去唱K……等等,这些都是当代大学生能够消遣时间的时间的各种常见的娱乐活动了。作为一名计算机科学与技术系的学生我可以说是普通得不再普通了吧,如今天朝的大学里学计算机的童鞋们可以说是一抓一大把,有料的没料的、能敲码字的不能码字的、能帮学妹修电脑的不能帮学妹修电脑的,可谓是各式各样的人才都有。话说在大学我今年也要毕业了,挺有压力的毕竟我就是学渣一个学了4年的软件也没见学到什么精髓的东西,和大多数人一样心急的我一头扎进了校招的应聘的学生大军中。茫茫然然的我或许口才还行,居然忽悠忽悠的就找到了一家公司和我签了三方协议,也不知道是不是走了狗屎运。

  但是问题来了,不签还好,签完后自己的压力反而更加大了,凭自己这种三脚猫公司去到别人大公司里,估计不用两三天就会被别人嫌弃T出来了吧,所以最近自己也是卯足了劲开始复习自己学过的JAVA和看一些代码匠艺方面的书籍了。

今天我就开始分享一些自己敲的代码,有点丑不过还是要见公婆的害羞

package com.zrz.tools;/** * 数组工具类 * * @author zide * */public class arrayTools {    /**     * 冒泡排序     *     * @param myInteger 需要排序的数组     * @return     */    public int[] sortByBubble(int[] myInteger) {        for (int i = 0; i < myInteger.length; i++) {            for (int j = 1; j <= myInteger.length - i - 1; j++) {                //如果当前值大于下一个的值那么交换                if (myInteger[j - 1] > myInteger[j]) {                    //交换两个变量的值                    myInteger = swap(myInteger, j - 1, j);                }            }        }        return myInteger;    }    /**     * 直接插入排序     *     * @param myarray 需要排序的数组     * @return     */    public int[] SortByInsertion(int[] myarray) {        //右边部分        for (int i = 0; i < myarray.length; i--) {            //左边那部分            for (int j = i; j > 0; j--) {                if (myarray[j] > myarray[j - 1]) {                    break;                }                else {                    myarray = swap(myarray, j, j - 1);                }            }        }        return myarray;    }    /**     * 二分排序     *     * @param myarray 需要排序的数组     * @return     */    public int[] SortByBinary(int[] myarray) {        for (int i = 1; i < myarray.length; i++) {            int left = 0, right = i - 1, mid, findI;            findI = myarray[i];            while (left <= right) {                mid = (left + right) / 2;                if (myarray[mid] < findI) {                    left = mid + 1;                }                else if (myarray[mid] > findI) {                    right = mid - 1;                }                else {                    left = mid;                    break;                }            }            for (int j = i - 1; j >= left; j--) {                myarray[j + 1] = myarray[j];            }            if (left != i) {                myarray[left] = findI;            }        }        return myarray;    }    /**     *     * 快速排序法     *     * @param myarray 需要排序的数组     * @param start 开始位置     * @param end 结束位置     * @return     */    public int[] SortByQuick(int[] myarray, int start, int end) {        if (start < end) {            int base = myarray[start]; // 选定的基准值(第一个数值作为基准值)                         int temp; // 记录临时中间值                     int i = start, j = end;            do {                while ((myarray[i] < base) && (i < end)) {                    i++;                }                while ((myarray[j] > base) && (j > start)) {                    j--;                }                if (i <= j) {                    temp = myarray[i];                    myarray[i] = myarray[j];                    myarray[j] = temp;                    i++;                    j--;                }            }            while (i <= j);            if (start < j) {                SortByQuick(myarray, start, j);            }            if (end > i) {                SortByQuick(myarray, i, end);            }        }        return myarray;    }    /**     * 二分查找     *     * @param myarray 排序好的数组     * @param findI 需要查找的数值     * @return     */    public int FindByBinary(int[] myarray, int findI) {        int left = 0, right = myarray.length - 1, mid;        while (left < right) {            mid = (left + right) / 2;            if (myarray[mid] == findI) {                return mid;            }            else if (myarray[mid] < findI) {                left = mid + 1;            }            else if (myarray[mid] > findI) {                right = mid - 1;            }        }        return -1;    }    //更改两个位置的值,然后返回    private static int[] swap(int[] arr, int a, int b) {        arr[a] = arr[a] ^ arr[b];        arr[b] = arr[a] ^ arr[b];        arr[a] = arr[a] ^ arr[b];        return arr;    }}

0 0
原创粉丝点击