当前位置:首页 > 学习笔记 > Java教程 > Java教程第七节:选择排序法和和冒泡排序法

Java教程第七节:选择排序法和和冒泡排序法

刘广法2022年03月15日 16:25:30Java教程2940
Java教程第七节:选择排序法和和冒泡排序法-第1张图片-刘广法IT博客

选择法排序:

分为若干轮比较,每一轮找出一个最大值。

刘广法整理思路:假设有数组{ 1, 2, 3, 5, 98, 24, 6, 456, 14 },假设第一个数字最大,然后从第二个开始依次和第一个比,如果比第一个大,那就调换位置,每一轮找一个从剩下的找一个最大的。

	public static void main(String[] args) {
		// 选择排序法
                int a[] = { 1, 2, 3, 5, 98, 24, 6, 456, 14 };
		for (int i = 1; i < a.length; i++) {// 循环轮数
			for (int j = i; j < a.length; j++) {//剩下的所有数
				if (a[j] > a[i - 1]) {// 第几轮那第几个数和所有数作比较并置换出最大值
					int m = a[i - 1];
					a[i - 1] = a[j];
					a[j] = m;
				}
			}
		}
		System.out.println(Arrays.toString(a));
	}

也可以这样写:

变换位置的地方有:int 初始值由原来的1 变成现在的0 ,循环的轮数也有变换,剩下的所有数的表达式也有变换

	public static void main(String[] args) {
		// 选择排序法
		int a[] = { 1, 2, 3, 5, 98, 24, 6, 456, 14 };
		for (int i = 0; i < a.length - 1; i++) {// 循环轮数
			for (int j = i - 1; j < a.length - 1; j++) {// 剩下的所有数
				if (a[j + 1] > a[i]) {// 第几轮那第几个数和所有数作比较并置换出最大值
					int m = a[i];
					a[i] = a[j + 1];
					a[j + 1] = m;
				}
			}
		}
		System.out.println(Arrays.toString(a));
	}

Java控制台输出结果:

[456, 98, 24, 14, 6, 5, 3, 2, 1]

冒泡排序法:

刘广法思路:所有数都等待排序,第一轮就是选择一个小的放在后面,一直比较一直比较,那么最小的就跑到最后面了

	public static void main(String[] args) {
		// 冒泡排序法
		int a[] = { 2, 5, 6, 8, 93, 1, 328, 12, 5, 123, 485, 5 };
		for (int i = 0; i < a.length-1; i++) {
			for (int j = 0; j < a.length - i - 1; j++) {
				if (a[j] < a[j + 1]) {
					int t = a[j + 1];
					a[j + 1] = a[j];
					a[j] = t;
				}
			}
			System.out.println(Arrays.toString(a));
		}
	}

Java控制台输出结果:

[5, 6, 8, 93, 2, 328, 12, 5, 123, 485, 5, 1]
[6, 8, 93, 5, 328, 12, 5, 123, 485, 5, 2, 1]
[8, 93, 6, 328, 12, 5, 123, 485, 5, 5, 2, 1]
[93, 8, 328, 12, 6, 123, 485, 5, 5, 5, 2, 1]
[93, 328, 12, 8, 123, 485, 6, 5, 5, 5, 2, 1]
[328, 93, 12, 123, 485, 8, 6, 5, 5, 5, 2, 1]
[328, 93, 123, 485, 12, 8, 6, 5, 5, 5, 2, 1]
[328, 123, 485, 93, 12, 8, 6, 5, 5, 5, 2, 1]
[328, 485, 123, 93, 12, 8, 6, 5, 5, 5, 2, 1]
[485, 328, 123, 93, 12, 8, 6, 5, 5, 5, 2, 1]
[485, 328, 123, 93, 12, 8, 6, 5, 5, 5, 2, 1]


文章来源:刘广法,转载请注明出处。原文链接网站为:https://liuguangfa.com/

扫描二维码推送至手机访问。

版权声明:本文由刘广法博客发布,如需转载请注明出处。

本文链接:https://liuguangfa.com/java/118.html

分享给朋友:

“Java教程第七节:选择排序法和和冒泡排序法” 的相关文章

使用eclipse进行文件的导入和导出

使用eclipse进行文件的导入和导出

该说不说,学会这个项目可以省很多的事情,刘广法可以用这个方法借鉴同学的项目,可以进行参考、借鉴、以及抄作业。一、使用eclipse进行项目的导出:1、使用eclipse进行项目的导出第一步:找到所在的项目工作空间,如果你知道的话,可以直接打开文件进行打包发送给你的好友,如果想要知道项目工作空间如何修...

eclipse的快捷键功能

eclipse的快捷键功能

有一些快捷键是可以修改的,具体修改过程如图下:修改快捷的详细步骤:1、使用快捷键调出快捷键列表进行查看:快捷键列表调用:shift + ctrl + L2、window->preferences->general->keys(或直接搜索keys)快捷键列表:shuft + ctrl...

Java练习:找出三位数中所有的水仙花的值

找到三位数中所有为水仙花的值1、水仙花:百位数的立方+十位数的地方+个位数的立方等于这个数本身。2、三位数中。具体的步骤:public static void main(String[] args) { int i =&nbs...

Java练习:从控制台输入一个年份,统计输入的年份到现在一共多少天?

从控制台输入一个年份,统计输入的年份到现在一共多少天?注意事项:1、平年365天,闰年十366天。2月份平年28天,2月份闰年29年。2、今年2022年3月14日3、闰年判断:能够被四百整数;能被4整数但不能被100整数public static void main(S...

Java练习:百钱百鸡利用Java进行实现

今有100块钱,需要购买100只鸡,已知鸡的价格是:公鸡5元,母鸡3元,小鸡三只元,问:需要购买多少只公鸡、母鸡、小鸡?Java实现百鸡百钱的方法一: public static void main(String[] args) { for&n...

Java教程 第六节:数组

数组数组:简单来说,就是一组相同数据类型的数。float[] score = new float[6];索引或者下标:必须是整数,不能为负。最大下标等于数组长度-1。float[0],就是float类型数据score的第一个项。数组的下标结合循环,可以简化对批...

Java教程 第八节:方法

定义方法:返回值类型 函数名称(函数列表){       // 函数体,可以执行代码,可以是0行或者多行。}我们常见的 main 方法就是一个在Java中最常见的方法:public static viod main(String []arg...

Java练习:定义一个函数,计算两个整数的最大公约数

Java面试题:定义一个函数,计算两个整数的最大公约数本题关键点:最大的公约数能够被两个数都整除的数 public static void main(String[] args) { // 定义一个函数,计算两个整数的最大公约数...

Java练习:递归的实操

Java练习:递归的实操

Java学习:递归的实操递归就是直接或者间接调用滋生。需要注意的就是,一定要有一个判断条件让这个死循环结束。Java学习递归实操训练一:利用递归算出10的阶乘:此方法是常规方法:<主要用作和下面用递归的对比> public static void main(...

关于Math.random();的说明

关于Math.random();的关系:一、随机产生某区间的数:int (Math.random() * (最大值 - 最小值) + 最小值)一、Math.random(); 在Java中式产生随机产生 [0,1) 之间的数创建一个方法:返回一个m~n 的值,包括m 但不包括 n ,如果返回 -1...

Java教程 第九节:字符串

创建字符串:// 创建字符串 String sString = "我是字符串"; String sString2 = "我是字符串2"; String sString3&nb...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。