Java教程

Java冒泡排序

本文主要是介绍Java冒泡排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

冒泡排序

Java提供了7种常见的排序方法:冒泡、插入、选择、快速、希尔、归并和堆衡量一固排序算法的相開圈性:时间复杂度、空间复杂度、稳定性

public class Test6 {
	public static void main(string[] args) {
	int[] arr1 = generateArray(10);
	showArray(arr1);
	bubblesort(arr1);
	showArray(arr1);
}
//使用冒泡排序封数撼魋行原地排序
                            /*
*畤間祯F度o(n**2)空間褛雄度o(1)不鲁交换相等值的位置,所以算法是稳定的*/
public static void bubb1esort(int[] arr) {
	for (int i = 1; i < arr.length; i++) { // 9
		for (int k = 0; k < arr.length - i; k++) {
			if (arr[k] > arr[k + 1]) {
				int tmp = arr[k];
                  arr[k] = arr[k + 1];
                  arr[k + 1] = tmp;
			}
		}
	}
}
//生成一个指定长度的包含随机数的数组
public static int[] generateArray(int len) {
	int[] res = new int[len];
	for (int i = 0; i < 1en;i++) {
		int num = (int) (Math.random() *100);
        res[i] = num;
	}
	return res;
}
//显示数组内容
public static void showArray(int[] arr) {
	for (int i = 0; i < arr.length; i++)
	System.out.print(arr[i] + "\t");
    System.out.print1n(;
}

系统预定义类

Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。
nextInt()只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。nextFloat、nextDouble这些也是以此类推,只能读取符合该类型的数据。

Scanner sc=new Scanner(System.in);//可以理解为获取标准输入设备的引用,用于接受用户的键盘录入
//为了针对用户优化,所以一般输入之前需要对用户进行提示
System.out.print1n("您的年龄是多少岁? ");//在控制台上输出提示信息
int age=sc.nextInt();//这里需要接收一个int类型的数据,如果不能转为int类型,则java.uti1.InputMismatchException
System.out.println("年龄:"+age);

注意在class类定义的上方应该添加import java.util.scanner;

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。注意,system类不能手动创建对象。
system中包含了in、out和err三个成员变量,分别代表标准输入流(键盘输入)、标准输出流(显示器)和标准错误输出流(显示器)
currentTimeMillis()获取系统当前毫秒值,获取当前系统时间与1970年01月01日00:00点之前的毫秒差值

public class Test2 {
	public static void main(string[] args) {
	long start = System.currentTimeMi77is();//获取代码运行到这里的时间,这个时间是从1970-1-1 0:0:0到当前时间的毫秒值
//经常用于统计某段代码的执行时间
        
//输出99乘法口诀表
	for (int i = 1; i < 10; i++) {
		for (int k = 1; k <= i; k++) {
			System.out.print(k + "☆”+ i + "=” +(i * k) + "\t");// print1n表示输出完成后自动换行,print输出完成后不会换行
		}
	System. out.print1n();
}
	long end =system.currentTimeMillis() ;
	system.out.println("代码执行时间为:" + (end - start) + "ms");
}


​ getProperties()确定当前的系统属性system.getProperties().list(system.out);,如果需要了解其中含义,可以使用百度查询
​ exit()退出虚拟机。exit(int)方法是终止当前正在运行的java虚拟机。参数是状态码。根据惯例非0的状态码表示异常终止,O表是终止。而且,该方法永远不会正常返回。
​ arraycopy(Object src, int srcPos, Object dest, int destPos, int length)可以调用当前操作系统来实现数组拷贝,用来实现将源数组部分元素复制到目标数组的指定位置
​ Object src:要复制的原数组
​ int srcPos:数组源的起始索引

​ Object dest:复制后的目标数组

​ int destPos:目标数组起始索引

​ int length,指定复制的长度;

int[] arr1=new int[10];
//数组中每个元素都有默认值,如果元素是简单数值类型则0, boolean为fa1se,字符'\O'
	for(int i=o ; i<arr1.length;i++)
	System.out.print(arr1[i]+"\t");
System.out.println();
//针对数组填充一组随机值
for(int i=o ; i<arr1.length;i++){
int num=(int)(Math.random() *100);//生成0-100之间的随机数
    arr1[i]=num;
}
for(int i=o ; i<arr1.1ength;i++)
		 System.out.print(arr1[i]+"\t");	System.out.print1n(;
int[] arr2=new int[30];
System.arraycopy(arr1,0,arr2,5,arr1.length);
                                                   for(int i=0 ; i<arr2 .length; i++)
	System.out.print(arr2[i]+"\t");
这篇关于Java冒泡排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!