Java笔记06——排序

第六节 排序

1.冒泡排序

.原理: 相邻的两个数比较,小的放前面,最大的放后面一次类推, 最大值下次不参与比较

代码结构:

                  int[] array ={};

                  for( int i = 0 ; i < array.length - 1 ; i++){ //外部循环进行比较

                        for( int j = 0 ; j < array.length - 1 - i ;j++){//内部进行元素比较

                               if( array[j] > array[j+1] ){

                                     int temp = array[j];

                                     array[j] = array[j+1];

                                     array[j+1] = temp;

                                     }

                               }

}

2.插入排序:

原理:在数组中将第一个元素当作有序是的序列,以后拿元素与第一个值进行比较,如果小就交换,不小就不换。

代码结构:

        int[] arr = {};
        //因为插入排序把第一个数看座有序的序列,所以要从第二个数开始比较
        for( int i = 1 ; i < arr.lenngth ; i++){ 
            //判断第二个数是否比第一个数小
            if(arr[i] < arr[i-1]){
                //如果第二个数比第一个小,将这个数赋值给暂时的一个变量(方便插入)
                int temp = arr[i];
                //标记这个小的元素的下标
                int j = i;
                //判断前一个数是否比temp小
                while( j > 0 && temp < arr[j-1]){
                //小的话前一个数赋值
                arr[j] = arr[j-1];
                //如果前边还有比这小的继续进行
                j--;
                }
            arr[j] = temp;
            }

} 

3.选择排序:

原理:经过一次比较将最小的元素的下标位置保存下来与第一个元素进行交换。

代码结构:

    int[] arr = {};
    //下标为零开始依次选择,找到从他之后的整个数组最小的进行交换
    for(int i = 0 ; i < arr.length ; i++){
        //把最小的下标赋值给一个最小标指针(方便for循环)
        int minIndex = i;
        //除了i下标开始进行比较选出最小的下标
        for( int j = i+1; j < arr.length ; j++){
            //如果比他小就把下标赋值给最小下标指针
            if(arr[j] < arr[minIndex]){
                minIndex = j;
            }
        }
            //交换值
            int temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
    }

未完待续。。。。。。

仅用于个人学习总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值