阅读 154

算法之排序

算法之排序

我用python实现的冒泡排序是双指针,这里虽然也是双指针,但是flag == 0,可以退出循环我不理解
选择排序python用的是技巧min()函数和切片
java么求初每一次循环索引的最小值(这里的技巧很厉害),然后再覆盖赋值

public class suanfa {    public static void main(String[] args) { //直接写main编译器就自动帮你加上了
        suanfa bubble = new suanfa(); //把这整个类赋值给sort变量
        //java赋值给变量一般数据类型时候都要加数据类型,指定大小空间;除了上方的类等赋值,方法赋值也要
        int[] array = {2,5,1,6,4,9,8,5,3,1,2,0};        int[] arr = {2,5,1,6,4,9,8,5,3,1,2,0};        int[] sort = bubble.sort(array);//类调用类中的方法
        int[] sort1 = bubble.select(arr);//选择排序
        for(int num:sort){
            System.out.print(num+"\t");
        }
        System.out.println("_------分割线------—_");        for(int num:sort1){
            System.out.print(num+"\t");
        }
    }    //冒泡排序
    public int[] sort(int[] array){    int temp = 0;    // 外层循环,他决定一共走几趟
    //-1为了防止溢出
    for(int i = 0;i<array.length-1;i++){        int flag = 0; //通过符号位可以减少无谓的比较,如果已经有序了,就退出循环
        // 内层循环,他决定每趟走一次
        for(int j =0;j<array.length-i-1;j++){            //如果后一个大于前一个,则换位
            if(array[j+1]>array[j]){
                temp = array[j];                array[j] = array[j+1];                array[j+1] = temp;
                flag=1;
            }
        }        //为什么flag == 0,可以退出循环
        if(flag==0){            break;
        }
    }    return array;
    }    //选择排序
    public int[] select(int arr[]){ //arr也可以等价于array
        int temp = 0;        for(int i = 0;i<arr.length-1;i++){            //不必python中的range(len(arr)),他不取最后一项,
            //java这里要标记清楚

            // 认为目前的数就是最小的,记录最小数的下标
            int minIndix = i;            for(int j=i+1;j<arr.length;j++){                if(arr[minIndix]>arr[j]){// 修改最小值的下标
                    minIndix = j;
                }
            }            // 当退出for就找到这次的最小值,就需要交换位置了
            if(i!=minIndix){ //交换当前值和找到最小值的位置
                temp = arr[i];
                arr[i] = arr[minIndix];
                arr[minIndix] = temp;
            }
        }        return arr;

    }
}

~~

努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。


服务器评测 http://www.cncsto.com/ 

服务器测评 http://www.cncsto.com/ 

站长资源 https://www.cscnn.com/ 

 


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐