zoukankan      html  css  js  c++  java
  • 直接选择排序和反转排序

    package com.xxx.xxx;
    /**
     * 1.直接选择排序
     * 2.反转排序
     * @author Administrator
     *
     */
    public class demo11 {
    
        //直接选择排序
        /**
         * 直接选择排序比冒泡排序快一些
         * 基本思想:将指定排序位置与其他数组元素分别对比,满足就交换
         * (注意:这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换)
         * 与冒泡排序相比,直接选择排序的交换次数要少很多
         */
        public static void main(String[] args) {
            //直接选择排序
            int index;
            int[] array = {63,4,24,1,3,15};    //创建数组是乱序的
    
            for(int i=1;i<=array.length;i++){ //开始为 1 ,判断是 小于等于
                index = 0;
                for(int j = 1;j<= array.length-i;j++){    //开始为 1, 判断是 小于等于, 长度-1
                    if(array[j] > array[index]){    // if判断
                        index = j;
                    }
                }
                //交换在位置 array_sort.length-1 和 index_sort(最大值)上的两个数
                int temp = array[array.length-i]; //把第一个元素保存在临时变量中
                array[array.length-i] = array[index];    //把第二个保存在第一个
                array[index] = temp; //把临时变量(也就是第一个)保存在第二个元素中
            }
            //遍历输出
            for(int k : array){
                System.out.print(">"+k);
            }
    
            System.out.println("
    --------------------------");
    
            //2.反转排序
            /**
             * 基本思想:把数组最后一个元素与第一个元素替换,倒数第二个元素把第二个元素替换,以此类推,直到把所有数组元素反转替换
             * 反转排序是对数组两边的元素进行替换,所以只需要循环数组长度的半数次
             * 如数组长度为7,那么for循环只需循环3次
             */
    
            int[] a = {10,20,30,40,50,60};
            //数组反转后遍历输出
            for(int x : a){
                System.out.print(x+"	");
            }
            System.out.println();
            int temp;
            int len = a.length;    //获取数组长度
            for(int i=0;i<len / 2 ;i++){    //根据算法,长度 除2
                temp = a[i];            //交换
                a[i] = a[len - 1 - i];
                a[len - 1 - i] = temp;
            }
            //数组反转后遍历输出
            for(int x : a){
                System.out.print(x+"	");
            }
    
        }
    
    }
  • 相关阅读:
    初识JSP知识
    Session每次访问都回新建对象问题的处理
    C++ 重载中括号
    C++ 重载输出符号
    C++ 单目运算 and 双目运算符重载complex
    C++运算符重载范例
    c++ 运算符重载之成员函数重载
    c++ 友元函数
    c++ static 类
    c++ const 类
  • 原文地址:https://www.cnblogs.com/spadd/p/4164622.html
Copyright © 2011-2022 走看看