冒泡排序,快速排序,选择排序。

package com.chai;

public class Bubble_sort {
	public static void main(String args[]) {
		//冒泡排序
		int[] arry= new int[]{31,32,43,42,35,43};//创建一个数组
		
		for(int w=0; w<arry.length-1;w++) {//循环arry的长度次数遍
			for(int q=0; q<arry.length-1-w;q++) {//随着外层循环次数减少而减少
				if(arry[q]>arry[q+1]) {//如果后面一个数比前面一个数大
					int temp=arry[q];
					arry[q]=arry[q+1];//将后面一个数给到前面一个数
					arry[q+1]=temp;//将前面一个数给到后面一个数
				}
			}
		}
		for(int i=0; i<arry.length; i++) {
			System.out.println(arry[i]);//将排序好的数组打印出来
		}

		System.out.println("===");
		int[] arr = { 49, 38, 65, 97, 23, 22, 76, 1, 5, 8, 2, 0, -1, 22 };
		quickSort(arr,0,arr.length-1);
		for(int i : arr) {
			System.out.println(i);
		}
		selectSort(arr);
		for(int w : arr) {
			System.out.println(w);
		}
		}
	

	//快速排序
		private static void quickSort(int[] arr, int low, int high) {
			int key=arr[low];//设置基准目标的值
			int start=low;//保存数值开始位置的初始值
			int end =high;//保存数组结束位置的初始值;
			while(start<end) {
				while(start<end&&arr[end]>=key) {//如果目标数比基准数大,则不断减少end的值,直至找到比基准小的数
					end--;
				}
				if(arr[end]<key) {//如果目标数小于基准数,则交换两个数的位置
					int temp=arr[end];

					arr[end]=arr[start];
					arr[start]=temp;
				}
				while(start<end&&arr[start]<=key) {//如果目标数比基准数小,则不断减少end的值,直至找到比基准小的数
					start++;
				}
				if(arr[start]>key) {//如果目标数大于基准数,则交换两个数的位置
					int temp=arr[start];

					arr[start]=arr[end];
					arr[end]=temp;
				}
			}
			 //这部分的数据都是小于准基数,通过递归在进行一趟快排
			if(end<high) {
				quickSort(arr,end+1,high);
			}
			if(start>low) {
				quickSort(arr,low,start-1);
			}
		}


		//选择排序
		public static void selectSort(int [] aa) {
			for(int a=0; a<aa.length-1;a++) {
				for(int b=a+1;b<aa.length;b++) {
					if(aa[b]<aa[a]) {//找到最小的数组,放到第一位。
						int temp=aa[b];
						aa[b]=aa[a];
						aa[a]=temp;
					}
				}
			}
		}
}

选择排序
在这里插入图片描述
冒泡排序
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
快速排序

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值