import java.util.Random;
/**
* 冒泡排序算法
* 步骤:
* 1.对数组中的相邻的两个数据进行比较。
* 2.如果前面的数据大于后面的数据就交换这两个数据,这样一轮比对下来就可以选出一个最小的了。
* 3.重复前面的步骤,就可以选出剩下的最小的了
*
* 核心原理:内层循环的时候,每次循环就要找出一个最大的或者最小的排好,然后再在剩下的数据中重复之前的操作
*/
public class Algorithm_BubbleSort {
public static void main(String[] args) {
int[] arr=new int[10];
Random random=new Random();
for (int i = 0; i < 10; i++) {
int num = random.nextInt(100)+1;
arr[i]=num;
}
System.out.print("原始数据:");
for (int i : arr) {
System.out.print(i+", ");
}
BubbleSortUp1(arr);
System.out.println();
System.out.print("方法1升序处理之后的数据:");
for (int i : arr) {
System.out.print(i+", ");
}
BubbleSortLow(arr);
System.out.println();
System.out.print("方法1降序处理之后的数据:");
for (int i : arr) {
System.out.print(i+", ");
}
BubbleSortUp2(arr);
System.out.println();
System.out.print("方法2升序处理之后的数据:");
for (int i : arr) {
System.out.print(i+", ");
}
BubbleSortLow2(arr);
System.out.println();
System.out.print("方法2升序处理之后的数据:");
for (int i : arr) {
System.out.print(i+", ");
}
}
public static void BubbleSortUp1(int[] arr){
int temp;
for (int i = 0; i <arr.length ; i++) {
for (int j = arr.length-1; i<j; j--) {
if (arr[j-1]>arr[j]){
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}
}
public static void BubbleSortLow(int[] arr){
int temp;
for (int i = 0; i <arr.length ; i++) {
for (int j = arr.length-1; i <j ; j--) {
if (arr[j-1]<arr[j]){
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}
}
private static void BubbleSortUp2(int[] arr) {
int temp;
for (int i = arr.length; i >=0 ; i--) {
for (int j = 0; j <i-1 ; j++) {
if (arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
private static void BubbleSortLow2(int[] arr) {
int temp;
for (int i = arr.length; i>=0 ; i--) {
for (int j = 0; j <i-1 ; j++) {
if (arr[j]<arr[j+1]){
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}
}
冒泡排序(基于java)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- import java.util.Arrays; import java.util.Random; public ...
- Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
- 1.选择排序看算法书才知道还有一种排序叫选择排序,还是经典排序,果然是算法渣渣,还孤陋寡闻,皮皮甜要加油啊什么是选...
