排序之选择排序的java语言简单实现

来源:互联网 发布:debian 没有yum 编辑:程序博客网 时间:2024/05/21 17:42

上篇博客讲了冒泡排序的简单实现,但是冒泡排序的速度确实有点慢,但是有没有效率稍微高一点的算法呢?确实是有的,就是接下来要说的选择排序。

选择排序的原理也很简单,就是从数组的第一位起,直到数组的倒数第2个元素,每次选择包括当前位置元素在内的和后面的元素中最小的一位,并将最小的元素调用到当前位置。

代码实现也十分简单:

    public static int[] xuanze(int[] array){        int temp = 0;        int index = 0;        for(int i =0; i < array.length-1; i++){            index = i;            for(int j = i+1; j < array.length;j++){                if(array[j] < array[index]){                    index = j;                }            }            if(index != i){                temp = array[index];                array[index] = array[i];                array[i] = temp;            }        }        return array;    }

从这个代码中也可以看出,它的算法复杂度为n^2,但是,与冒泡排序不同的是,并不是每次比较符合条件后会进行交换,而是在当前循环所有的比较完后再进行交换,这样它的效率比冒泡排序稍微高了那么一点点。哈哈哈,接下来再介绍效率比两个排序算法高那么一大截的快速排序。

0 0