Java选择排序和冒泡排序示例

简介: package cc.test;/** * Demo描述: * 选择排序和冒泡排序 */public class TestSort { public static void main(String[] args) { ...
package cc.test;
/**
 * Demo描述:
 * 选择排序和冒泡排序
 */
public class TestSort {

	public static void main(String[] args) {
           TestSort testSort=new TestSort();
           int intArray []=new int []{11,3,-2,4,8,7};
           testSort.selectSort(intArray);
           testSort.bubbleSort(intArray);
	}
	
	//选择排序
	//取出第一个元素依次与其后的每个元素比较,若大于则交换位置
	//在第一次排序完成后第一个元素存放的就是数组中的最小值
	//继续第二次排序,依次类推.....
	//但已经排过序的元素不需要再次参加排序
	//即代码:int j = i+1
	public void selectSort(int [] intArray){
		int temp;
		for (int i = 0; i < intArray.length; i++) {
			for (int j = i+1; j < intArray.length; j++) {
				if (intArray[i]>intArray[j]) {
					temp=intArray[j];
					intArray[j]=intArray[i];
					intArray[i]=temp;
				}
			}
		}
		
		System.out.println("选择排序结果如下:");
		for (int i = 0; i < intArray.length; i++) {
			System.out.print(intArray[i]+" ");
		}
		System.out.println("");
	}
	
	//冒泡排序
	//两个相邻的元素比较,一轮后一个最大值排在了数组最后面
	//继续上面操作,只是在上一轮中已排出的最大元素不再参加排序
	//备注说明:
	//1 外层for循环控制的是比较的轮数.
	//  注意:轮数总比数组长度小1.因为最后一轮就剩下一个元素没有排序的必要了
	//  因为此时第一个元素已经是最小值
    //  即代码:i < intArray.length-1
	//2 内存for循环控制每一轮的比较
	//  注意:要防止下标越界而且在以往轮中已经排序出来的值就不要再次参加排序
	//  即代码:j < intArray.length-1-i
	public void bubbleSort(int[] intArray) {
		int temp;
		for (int i = 0; i < intArray.length-1; i++) {
			for (int j = 0; j < intArray.length-1-i;j++) {
				if (intArray[j] > intArray[j + 1]) {
					temp = intArray[j + 1];
					intArray[j + 1] = intArray[j];
					intArray[j] = temp;
				}
			}
		}
		System.out.println("冒泡排序结果如下:");
		for (int i = 0; i < intArray.length; i++) {
			System.out.print(intArray[i]+" ");
		}
	}

}

相关文章
|
9月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
616 6
|
10月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
1231 3
|
10月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
704 0
Java API 开发者
390 0
|
安全 Java 网络安全
Java 实现 SMTP 协议调用的详细示例及实战指南 SMTP Java 调用示例
本文介绍了如何使用Java调用SMTP协议发送邮件,涵盖SMTP基本概念、JavaMail API配置、代码实现及注意事项,适合Java开发者快速掌握邮件发送功能集成。
1481 0
|
算法 搜索推荐 Java
Java中的Collections.shuffle()方法及示例
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,支持原地修改。可选传入自定义 `Random` 对象以实现结果可重复,适用于抽奖、游戏、随机抽样等场景。
459 0
|
存储 安全 Java
应届生面试高频 Java 基础问题及实操示例解析
本文总结了Java基础面试中的高频考点,包括数据类型分类、final修饰符的三种用途、static关键字特性、==与equals的区别、Java只有值传递的特性、String的不可变性、Error与Exception的差异、程序初始化顺序规则,以及IO流的字节流/字符流分类。每个问题都配有简明定义和典型示例,如用final修饰变量示例、static方法调用限制说明等,帮助应聘者快速掌握核心概念和实际应用场景。
408 0
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
467 3
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
625 38