冒泡排序和插入排序

本文深入解析冒泡排序和插入排序两种经典排序算法。冒泡排序通过不断比较相邻元素并调整顺序实现排序,而插入排序则将数组分为有序和待插入部分,逐步将待插入元素放置于正确位置。两种算法各有优缺点,适用于不同场景。
摘要由CSDN通过智能技术生成

冒泡排序

原理:相邻元素两两进行比较,大的元素往后放

在这里插入图片描述

package com.itheima_day01;

import java.util.Arrays;

public class SortDemo2 {
	public static void main(String[] args) {

		int[] arr = { 24, 69, 80, 57, 13 };

		for (int i = 0; i < arr.length - 1; i++) {// 遍历排序的次数
			for (int x = 0; x < arr.length - 1; x++) {// 控制的是每次排序相邻元素比较
				if (arr[x] > arr[x + 1]) {
					int temp = arr[x];
					arr[x] = arr[x + 1];
					arr[x + 1] = temp;
				}
			}

			System.out.println(Arrays.toString(arr));
		}

	}

}

插入排序

原理:将一组元素分为有序组,待插入组,每次从待插入组选取一个元素,好有序组进行从后往前比较,并把元素存储在合适的位置,直到待插入组元素为0
在这里插入图片描述

package com.itheima_day01;

import java.util.Arrays;

/*
 * 插入排序进行排序
 * 原理: 将一组元素分为有序组, 带插入组,每次从待插入组中选取一个元素, 和有序组进行从后往前比较, 并把元素存储在合适的位置, 直到待插入组元素为0 
 */
public class SortDemo1 {
	public static void main(String[] args) {

		int[] arr = { 6, 5, 3, 1, 8, 7, 2, 4 };

		// 定义一个变量, 记录待插入的元素
		int temp;// 7

		for (int x = 1; x < arr.length; x++) {// x = 5
			temp = arr[x]; // 把待插入的元素赋值给temp

			int y ;
			// 遍历有序组元素
			for ( y = x - 1; y >= 0; y--) {// y = 3
				if(arr[y] > temp){
					// 如果有序组中的元素比待插入的元素大, 那么就把有序组的这个元素往后移动一位
					arr[y + 1] = arr[y];
				}else{
					break;
				}
			}
			// 把待插入的元素,放到指定的位置
			arr[y + 1] = temp;
			
			System.out.println(Arrays.toString(arr));
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值