开发者社区 问答 正文

java中排序算法代码

java中排序算法代码

展开
收起
知与谁同 2018-07-22 17:29:44 1546 分享 版权
1 条回答
写回答
取消 提交回答
  • package temp;
    import sun.misc.Sort;
    /**
    * @author zengjl
    * @version 1.0
    * @since 2007-08-22
    * @Des java几种基本排序方法
    */
    /**
    * SortUtil:排序方法
    * 关于对排序方法的选择:这告诉我们,什么时候用什么排序最好。当人们渴望先知道排在前面的是谁时,
    * 我们用选择排序;当我们不断拿到新的数并想保持已有的数始终有序时,我们用插入排序;当给出的数
    * 列已经比较有序,只需要小幅度的调整一下时,我们用冒泡排序。
    */
    public class SortUtil extends Sort {
    /**
    * 插入排序法
    * @param data
    * @Des 插入排序(Insertion Sort)是,每次从数列中取一个还没有取出过的数,并按照大小关系插入到已经取出的数中使得已经取出的数仍然有序。
    */
    public int[] insertSort(int[] data) {
    1/11页
    int temp;
    for (int i = 1; i < data.length; i++) {
    for (int j = i; (j > 0) && (data[j] < data[j - 1]); j--) {
    swap(data, j, j - 1);
    }
    }
    return data;
    }
    /**
    * 冒泡排序法
    * @param data
    * @return
    * @Des 冒泡排序(Bubble Sort)分为若干趟进行,每一趟排序从前往后比较每两个相邻的元素的大小(因此一趟排序要比较n-1对位置相邻的数)并在
    * 每次发现前面的那个数比紧接它后的数大时交换位置;进行足够多趟直到某一趟跑完后发现这一趟没有进行任何交换操作(最坏情况下要跑n-1趟,
    * 这种情况在最小的数位于给定数列的最后面时发生)。事实上,在第一趟冒泡结束后,最后面那个数肯定是最大的了,于是第二次只需要对前面n-1
    * 个数排序,这又将把这n-1个数中最小的数放到整个数列的倒数第二个位置。这样下去,冒泡排序第i趟结束后后面i个数都已经到位了,第i+1趟实
    * 际上只考虑前n-i个数(需要的比较次数比前面所说的n-1要小)。这相当于用数学归纳法证明了冒泡排序的正确性
    2019-07-17 22:49:44
    赞同 展开评论