冒泡排序和选择排序分析与代码实现

一、冒泡排序

问题:用冒泡排序来进行排序

  • 分析:什么是冒泡排序?
  • 冒泡排序:
  • 从第一个数开始,两个数两个数的进行两两比较,i与i+1比较,i+1与i+2比较…小的在前大的在后
  • 每次可以确定一个最大值
  • eg:对 24 69 80 57 13 用冒泡排序进行排序
  • 第一次:24 69 57 13 80
  • 第二次:24 57 13 69 80
  • 第三次:24 13 57 69 80
  • 第四次:13 24 57 69 80

代码实现如下:

public class bubbleSort {
	public static void main(String [] args) {
		//首先定义一个int型数组
		int[] arr=new int[]{24, 69, 80, 57, 13};
		//外层for循环确定的是排序次数
		for ( int i=0 ; i < arr.length-1; i++) {
			//内层for循环确定的是正在比较的两个数
			for (int j = 0; j < arr.length-1-i; j++) {
				if (arr[j]>arr[j+1]) {
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}	
		}
		//遍历数组,按照[ , , , , ]格式输出
		System.out.print("[");
		for (int i = 0; i < arr.length; i++) {
			if(i==arr.length-1) {
				//当遍历到最后一个数据时直接输出
				System.out.print(arr[i]);
			}else {
				System.out.print(arr[i]+",");
			}	
		}
		System.out.print("]");
	}
}

二、选择排序

问题:用选择排序来进行数组排序

  • 分析:什么是选择排序?
  • 选择排序:
  • 从第一个数i开始比较,与它后面的数i+1、i+2、i+3…进行比较,如果比它后面的数小就不用换位置
  • 否则,就替换一下位置,接着用替换了i+1、i+2、i+3…与它原来位置后面的数进行比较,直到最后一个数,重复上面行为
  • 选择排序每次排序都确定了一个最小值
  • eg:对24 69 80 57 13进行选择排序
  • 第一次:13 69 80 57 24
  • 第二次:13 24 80 69 57
  • 第三次:13 24 57 80 69
  • 第四次: 13 24 57 69 80

代码实现如下:

 public class selectSort {
	public static void main(String[] args) {
		//首先定义一个int型数组
		int[] arr= new int[] {24, 69, 80, 57, 13};
		//外层for循环用来表示是第几个数第几层在进行排序
		for (int i = 0; i < arr.length-1; i++) {
			//内层for循坏用来表示某个数与它后面的数进行比较
			for (int j = i+1; j < arr.length; j++) {
				if (arr[i]>arr[j]) {
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
		//遍历数组
		System.out.print("[");
		for (int i = 0; i < arr.length; i++) {
			if(i==arr.length-1) {
				//当遍历到最后一个数据时直接输出
				System.out.print(arr[i]);
			}else {
				System.out.print(arr[i]+", ");
			}
		}
		System.out.print("]");
	}
}

三、总结

今天重新翻了一下之前看过的JAVA视频,然后就看到了老师讲的这两个排序,当时看的时候只写在了笔记本上,就觉得还要总结一下,数据结构还是很重要的,等以后在看到其他的还是要接着总结呀!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值