java基本算法选择排序和冒泡排序

Posted 天空VS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基本算法选择排序和冒泡排序相关的知识,希望对你有一定的参考价值。

1.冒泡排序

冒泡排序(Bubble Sort)是最经典也是最简单的排序算法之一。

原理:比较相邻的两个元素,将值大的元素交换到右边(降序则相反).

步骤:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

   针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

package first;
import java.util.Scanner;
public class Test1 {
	public static void main(String args[]){
		Scanner input=new Scanner(System.in);
		System.out.print("请输入任意10个数");
		int[] nums=new int[10];
		for(int i=1;i<11;i++){
			System.out.println("输入第"+i+"个数");
			nums[i-1]=input.nextInt();
		}
		System.out.println("开始排序==============================");
		int temp;
		//控制比较多少轮,一共十个数所以只需比较九轮
		for(int i=0;i<nums.length-1;i++){ 
			//控制每轮比较多少次,每次比较完一轮,比较的次数就少了一次
			for(int j=0;j<nums.length-1-i;j++){
				if(nums[j]>nums[j+1]){
					temp=nums[j];
					nums[j]=nums[j+1];
					nums[j+1]=temp;
				}
			}
		}
		for(int n=0;n<nums.length;n++){
		System.out.print(nums[n]+" ");
		}
	}
}

  结果:

请输入任意10个数输入第1个数
11
输入第2个数
22
输入第3个数
33
输入第4个数
44
输入第5个数
55
输入第6个数
66
输入第7个数
77
输入第8个数
88
输入第9个数
99
输入第10个数
89
开始排序==============================
11 22 33 44 55 66 77 88 89 99 

 2.选择排序

 选择排序是一种简单直观的排序算法,其基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的

其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,知道进行比较的记录只剩下一个为止。简单选择排序的性能要优于冒泡排序。

public class Test2 {
	public static void main(String args[]){
		int[] nums={12,8,11,6,4,2,15,3,7,5};
		for(int i=0;i<nums.length-1;i++){
			int temp=nums[i];
			int flag=i;
			for(int j=i+1;j<nums.length;j++){
				// nums[j] < temp 从小到大排序;nums[j] > temp 从大到小排序
				if(temp>nums[j]){
				temp=nums[j];
				// 如果有小于当前最小值将此元素的下标赋值给flag,这是因为交换位置后我们需要知道nums[i]替换了哪个位置的元素
				// j只是一个局部变量,我们要将其赋值给全局变量
				flag=j; 
				}
			}
			if(flag!=i){
				nums[flag]=nums[i];
				nums[i]=temp;		
			}
		}
		for(int n=0;n<nums.length;n++){
			System.out.print(nums[n]+" ");
			}
	}
}

  输出结果:

2 3 4 5 6 7 8 11 12 15 

  

以上是关于java基本算法选择排序和冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

Java常见算法——冒泡排序选择排序

Day562.冒泡排序&选择排序 -数据结构和算法Java

四中基本排序算法几Java实现(冒泡选择插入快排)

排序算法精讲:选择排序和冒泡排序

算法_基本排序算法之冒泡排序,选择排序,插入排序和希尔排序