zoukankan      html  css  js  c++  java
  • Java数组

    冒泡排序

    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;
        }
    }

    通过数组名.length()能获得数组的长度//这句话是错的
    对于字符串,可以:
    String s = "abcd";
    System.out.println(s.length()); //打印字符串长度

    对于数组,length不是方法,而是属性,应该这样:
    String[] aa = {"abc", "123"};
    System.out.println(aa.length); //注意,没有括号了
  • 相关阅读:
    VS2013无法启动 IIS Express Web解决办法
    浅谈Java中switch分支语句
    instanceof运算符与引用变量的强制类型转换
    Java语言中null与" "的区别
    Java字符串无意识的递归
    不同编程语言实现输出“HelloWorld!”
    用 C# 来守护 Python 进程
    Python核心技术与实战 笔记
    Python3 系列之 并行编程
    Django + Gunicorn + Nginx 部署之路
  • 原文地址:https://www.cnblogs.com/xuyinyin/p/10863928.html
Copyright © 2011-2022 走看看