码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-03-15 11:07:44      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:除了   针对   imp   []   步骤   static   控制   scan   system   

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基本算法选择排序和冒泡排序

标签:除了   针对   imp   []   步骤   static   控制   scan   system   

原文地址:https://www.cnblogs.com/updatemyself/p/8571248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!