冒泡法
原理:从左往右,两个数比较,将较小的数,放前面。(可以做到从小到大的排序)
package com;
public class Test02 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//System.out.print("HelloWorld");
int arr[]={1,6,7,4,5};
int a=0;
for(int i=0;i<arr.length;i++)
{
for(int j=i;j<arr.length;j++)
{
if(arr[i] > arr[j])
{
a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
}
}
for(int b:arr)//foreach
{
System.out.println(b);
}
}
}
java数组的初始化
java数组是静态的,必须经过初始化后才能使用,并且一旦初始化指定了数组的长度,该长度是不可变的。
两种初始化的方式:
1.静态初始化:初始化时由程序猿显示指定每个数组元素的初始值,由系统决定数组的长度
1.1 简化格式: 数据类型[] 数据名称 = { 值, 值 , 值 , …} ;
int a[] = {1,2,3,4};
1.2 完整格式(推荐使用): 数据类型[] 数据名称 = new 数据类型[] { 值, 值 , 值 , …} ;
eg. int[] i = new int[] { 0 , 1 , 2 , 3 } ;
2.动态初始化:就是与静态初始化相对的撒,其实动态初始化就是在初始化的时候指定数组长度(这时已经分配内存)
int a[] = new int[5];
a[0] = 1;
a[1] = 2;
数组中静态初始化和动态初始化的区别
静态是指在定义的同时就指定了值,一般存放已经知道却不改变的数据,例如性别等
而动态的话,声明时候只是给数组分配了内存大小空间,空间里除了初始值(数值类型是0,引用类型为NULL)什么也没有,实际放什么值是要由后面的程序来指定的,因为一开始放什么,我们也许也并不清楚。动态数组,程序运行时能更改数据
For-Each 循环
JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。
语法格式如下:
for(type element: array)
{
System.out.println(element);
}
for(int a:arr)
{
System.out.println(a);
}
Arrays类的sort()方法
首先:sort函数的基本格式(默认排序为升序排序)
Arrays.sort(数组名,起始下标,终止下标);
起始下标,终止下标,可以不写
import java.util.*;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(in.hasNext())
{
int num[]=new int[100];
int n;///输出n个数
n=in.nextInt();
for(int i=0;i<n;i++)
{
num[i]=in.nextInt();
}
Arrays.sort(num,0,n);///排序部分
for(int i=0;i<n;i++)
{
System.out.println(num[i]);
}
}
}
}
https://i-blog.csdnimg.cn/blog_migrate/a49e8414226009cb58fcaa2dad74319d.jpeg
结果为