java--冒泡排序

代码示例:

package cn.bdqn.demo02;

public class ArrayDemo01 {

	public static void main(String[] args) {
		// 冒泡排序
		int[] nums = {11,56,94,78,33};
		//排序前输出数组
		System.out.println("排序前的数组:");
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}
		System.out.println();
		
		//外层循环控制行数(外控循环控制比较的轮数)
		for(int i =0;inums[j+1]){
					int temp = nums[j];
					nums[j]=nums[j+1];
					nums[j+1]=temp;
				}
			}
		}
		
		System.out.println("排序后的数组:");
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}

	}

}

// 需求:获取数组中的最大值或者最小值

        /*
         * 思路: 
         * 1)假设数组中的第一个元素(下标为0的元素)为最大值
         * 2)依次取出后面的元素与假设的最大值进行比较,如果后面的元素比假设的最大值大,
         * 取代它成为新的最大值,如果比假设的最大值小,不进行替换,继续比较下一个元素 
         * 3)一直比较到最后一个元素,就可以获得数组中的最大值
         */

package cn.bdqn.demo01;

public class ArrayDemo02 {

	public static void main(String[] args) {

		int[] nums = { 11, 56, 78, 95, 46, 88, 13 ,199};

		int max = nums[0];

		// 数组中第二个元素与假设的最大值比较
		// if(nums[1]>max){
		// max=nums[1];
		// }
		//
		// if(nums[2]>max){
		// max = nums[2];
		// }
		//
		// if(nums[3]>max){
		// max = nums[3];
		// }
		// .....
		
		for(int i =0;imax){
				max=nums[i];
			}
		}
		
		System.out.println("数组中的最大值是:"+max);

	}

}

 

 

 /*
         * 有一组学员的成绩{99,85,82,63, 60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序
         * 
         * 思路: 
         * 1)新建一个比原来数组长度大1的数组 
         * 2)将原来数组里的元素按照顺序存储到新的数组中
         * 3)使用Scanner获取你要增加的学员成绩
         * 4)通过循环比较,获取插入元素要插入的位置(下标)
         * 5)从插入位置开始及之后的元素依次往后移动一位(注意:移动的时候,从后向前移动)
         * 6)移动元素之后,插入位置就空出来了,将插入元素存储到插入位置
         */

package cn.bdqn.demo01;

import java.util.Scanner;

public class ArrayDemo03 {

	public static void main(String[] args) {

		int[] scores = { 99, 85, 82, 63, 60 };

		// 1)新建一个比原来数组长度大1的数组
		int[] newScores = new int[scores.length + 1];

		// 2)将原来数组里的元素按照顺序存储到新的数组中
		// newScores[0]=scores[0];
		// newScores[1]=scores[1];
		// newScores[2]=scores[2];
		// newScores[3]=scores[3];
		for(int i =0;inewScores[i]){
				index = i;
				//一旦获取插入元素比某一个元素大,就不再往后进行比较了,结束整个比较过程
				break;
			}
		}
		
		//5)从插入位置开始及之后的元素依次往后移动一位(注意:移动的时候,从后向前移动)
		for(int i =newScores.length-1;i>index;i--){
			newScores[i]=newScores[i-1];
		}
		
		//6)移动元素之后,插入位置就空出来了,将插入元素存储到插入位置
		newScores[index]=insert;
		
		//插入元素之后,遍历数组
		for (int i = 0; i < newScores.length; i++) {
			System.out.print(newScores[i]+" ");
		}

	}

}
package cn.bdqn.demo01;

import java.util.Scanner;

public class ArrayDemo04 {

	public static void main(String[] args) {
		//求出4家店的最低手机价格

		//第一步:声明一个长度为4的数组
		int[] prices = new int[4];
		
		//第二步:使用Scanner获取每家店的手机价格并将价格存储到数组中
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入4家店的价格:");
		for (int i = 0; i < prices.length; i++) {
			System.out.println("请输入第"+(i+1)+"家店的手机价格:");
			prices[i]=sc.nextInt();
		}
		
		//第三步:获取手机的最低价格
		int min = prices[0];
		for (int i = 0; i < prices.length; i++) {
			if(prices[i]
package cn.bdqn.demo01;

import java.util.Scanner;

public class ArrayDemo05 {

	public static void main(String[] args) {
		//数组存储5笔购物金额,在控制台输出并计算总金额

		//第一步:声明一个长度为5的数组
		double[] prices = new double[5];
		
		//第二步:使用Scanner获取购物金额并将金额存储到数组中
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入会员本月的消费记录:");
		
		//声明一个变量sum用来累加购物金额
		double sum = 0;
		
		for (int i = 0; i < prices.length; i++) {
			System.out.println("请输入第"+(i+1)+"笔购物金额:");
			prices[i]=sc.nextDouble();
			//在输入购物金额的同时,可以将购物金额累加到sum变量中
			sum+=prices[i];
		}
		
		//输出购物金额
		System.out.println("序号\t\t金额(元)");
		for (int i = 0; i < prices.length; i++) {
			
			System.out.println((i+1)+"\t\t"+prices[i]);
		}
		
		System.out.println("总金额\t\t"+sum);
	}

}

你可能感兴趣的:(java,java,算法,排序算法)