选择排序java代码

/**
     * 选择排序
     * 
     * 原理:将最小值与数组第1个即array[0]交换,第二次则忽略array[0],直接从array[1]至array[array.length-1]中
     * 选择出最小值与array[1]交换,以此类推
     * 
     * 与冒泡排序法区别在于交换次数减少
     * @param a
     * @return 
     */
    public long[] SelectSort(long[] a){
        
        for(int i=0 ; i < a.length ; i++){
            int minIndex = i;
            int j=i+1 ; j < a.length ; j++){
                if(a[minIndex] > a[j]){
                    minIndex = j;
                }
            }
            if(i != minIndex){
                a[i] = a[i] ^ a[minIndex];
                a[minIndex] = a[minIndex] ^ a[i];
                a[i] = a[i] ^ a[minIndex];
            }
            
        }
        
        return a;
    }
原理:将最小值与数组第1个即array[0]交换,第二次则忽略array[0],直接从array[1]至array[array.length-1]中选择出最小值与array[1]交换,以此类推。

相关文章

背景:计算机内部用补码表示二进制数。符号位1表示负数,0表...
大家好,我们现在来讲解关于加密方面的知识,说到加密我认为不...
相信大家在大学的《算法与数据结构》里面都学过快速排序(Qui...
加密在编程中的应用的是非常广泛的,尤其是在各种网络协议之...
前言我的目标是写一个非常详细的关于diff的干货,所以本文有...
对称加密算法 所有的对称加密都有一个共同的特点:加密和...