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]+" ");
		}
	}

}

相关文章
|
2月前
|
Java 开发工具
【GDAL-java的四个常用代码示例】
【GDAL-java的四个常用代码示例】
39 0
|
2月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
29 0
|
7天前
|
Java
简单的 Java 计算器示例
这是一个Java计算器程序,接收用户输入的两个数字和一个运算符(+,-,*,/),通过`Scanner`获取输入,使用`switch`进行计算。当运算符为除法时,检查除数是否为0,防止除零错误。最后,它打印出计算结果。
12 0
|
10天前
|
Java
Java 事件驱动编程:概念、优势与实战示例
【4月更文挑战第27天】事件驱动编程是一种编程范式,其中程序的执行流程由外部事件的发生而触发或驱动。
19 0
|
10天前
|
Java 程序员
Java 异步编程:概念、优势与实战示例
【4月更文挑战第27天】在现代软件开发中,异步编程是一种重要的编程范式,特别适用于处理长时间运行的任务,如网络通信、文件操作等。
19 0
|
10天前
|
Java 数据处理 API
Java 函数式编程:概念、优势与实战示例
【4月更文挑战第27天】函数式编程(Functional Programming,简称 FP)是一种编程范式,它将计算视为数学函数的求值并避免使用程序状态以及可变数据。
17 1
|
13天前
|
存储 算法 Java
wtf?java的冒泡排序还可以这样写
wtf?java的冒泡排序还可以这样写
8 1
|
22天前
|
消息中间件 Java API
RabbitMQ入门指南(三):Java入门示例
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了AMQP、Spring AMQP和使用SpringAMQP实现对RabbitMQ的消息收发等内容。
28 0
RabbitMQ入门指南(三):Java入门示例
|
1月前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
14 2
|
2月前
|
算法 搜索推荐 Java
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
18 1