zoukankan      html  css  js  c++  java
  • Java ——数组 选择排序 冒泡排序

    本节重点思维导图

     

    数组

    public static void main(String[] args) {
            int a ;
            a=3;
            
            int[] b;
            b = new int[3];//强制开辟内存空间
            
            int c[] = new int [8];
            
            int[] d = {3,4,5,67};
            int[] e = new int[] {3,4,5};
            
            System.out.println(d[2]);
        }

    例题:产生1到100之间所有奇数组成的数组并输出。要求每10个一行输出

    public class Demo {
            public static void main(String[] args) {
                int[] array = new int[50];
    
                for (int i = 0; i < 50; i++) {
                    array[i] = 2 * i + 1;
                }
    
                for (int i = 0; i < 50; i++) {
                    if (i  % 10 == 0)
                        System.out.println();
                    System.out.print(array[i] + "	");
                }
            }
        
    }
        

     多维数组

     

     Arrays 类

     java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的

    • 给数组赋值:通过 fill 方法。
    • 对数组排序:通过 sort 方法,按升序。
    • 比较数组:通过 equals 方法比较数组中元素值是否相等。
    • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

    额外补充:

    存储在数组当中的数据都属于同一数据类型

    比如说一个 int 类型的数组:

    int[] arr = { 'a', 25, 45, 78, 'z' };
    System.out.println(Arrays.toString(arr));

    输出结果是:[97, 25, 45, 78, 122]

    存放进去的 char 类型的字符会自动转为 int 类型的 ASCII 码

    上面的代码中就将 a 转成了 97,z 转成了 122。

     实现数组和字符串的转换处理

    public class Test {
        public static void main(String args[]) {
            String str = "helloworld";
            char[] data = str.toCharArray();// 将字符串转为数组
            for (int x = 0; x < data.length; x++) {
                System.out.print(data[x] + "  ");
                data[x] -= 32;
                System.out.print(data[x] + "  ");
            }
            System.out.println(new String(data));
        }
    }

    冒泡排序

    public class BubbleSort {
    /**
     * N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。
     * @param args
     */
        public static void main(String[] args) {
            int arr[] = {26,15,29,66,99,88,36,77,111,1,6,8,8};
            for(int i=0;i < arr.length-1;i++) {//外层循环控制排序趟数
                for(int j=0; j< arr.length-i-1;j++) {
                            //内层循环控制每一趟排序多少次
                    // 把小的值交换到前面
                    if (arr[j]>arr[j+1]) {
                        int temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
                System.out.print("第"+(i+1)+"次排序结果:");
                                    //列举每次排序的数据
                for(int a=0;a<arr.length;a++) {
                    System.out.print(arr[a] + "	");
                }
                System.out.println("");
            }
            System.out.println("最终排序结果:");
            for(int a = 0; a < arr.length;a++) {
                System.out.println(arr[a] + "	");
            }
        }
    }

    选择排序

    public class Start
    {
        public static void main(String[] args)
        {
            int[] arr={20,60,51,81,285,12,165,51,81,318,186,9,70};
            for(int a:arr)
            {
                System.out.print(a+" ");
            }
            
            System.out.println("
    "+"---------------从小到大---------------");
            
            arr=toSmall(arr);
            for(int a:arr)
            {
                System.out.print(a+" ");
            }
            
            System.out.println("
    "+"---------------从大到小---------------");
            
            arr=toBig(arr);
            for(int a:arr)
            {
                System.out.print(a+" ");
            }
        }
    //    从大到小
        public static int[] toSmall(int[] arr)
        {
    //遍历数组里除最后一个的其他所有数,因为最后的对象没有与之可以相比较的数
            for(int i=0;i<arr.length-1;i++)
            {
    /*遍历数组里没有排序的所有数,并与上一个数进行比较
     *“k=i+1”因为自身一定等于自身,所以相比没有意义
     *而前面已经排好序的数,在比较也没有意义
     */
                for(int k=i+1;k<arr.length;k++)
                {
                    if(arr[k]<arr[i])//交换条件(排序条件)
                    {
                        int number=arr[i];
                        arr[i]=arr[k];
                        arr[k]=number;
                    }//交换
                }
            }
            return arr;
        }
    //    从小到大
    //和前面一样
        public static int[] toBig(int[] arr)
        {
            for(int i=0;i<arr.length-1;i++)
            {
                for(int k=i+1;k<arr.length;k++)
                {
                    if(arr[k]>arr[i])
                    {
                        int number=arr[i];
                        arr[i]=arr[k];
                        arr[k]=number;
                    }
                }
            }
            return arr;
        }
    }
  • 相关阅读:
    机器学习项目流程(二)探索并可视化数据
    机器学习项目流程(一)初探数据集
    数据类型.md
    keepalived.md
    LVS.md
    tomcat多实例.md
    LANMP常用配置.md
    php-fpm配置参数.md
    Nginx学习.md
    Redis.md
  • 原文地址:https://www.cnblogs.com/expedition/p/10849460.html
Copyright © 2011-2022 走看看