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); //注意,没有括号了
原文地址:https://www.cnblogs.com/xuyinyin/p/10863928.html