JAVA选择排序和冒泡排序

选择排序

拿第一个的变量依次和之后的变量进行比较,如果小于第一个变量则交换,
第二次拿第二个变量依次和之后的变量进行比较,如果小于第二个变量则交换,
以此类推。。。

public static void selectSort(int[] arr) {
			for(int x=0;x<arr.length-1;x++) {//没有必要遍历到最后一个角标,最后一个单独存在,位置也就确定了。
				for(int y=x+1;y<arr.length;y++) {//y表示的是之后的比较变量,所以要取x+1
					if(arr[x]>arr[y]) {
						int temp =arr[x];
						arr[x]=arr[y];
						arr[y]=temp;
					}
				}				
			}
		}

冒泡排序

相邻的两个元素 进行比较,如果符合条件则换位,第一次,最值出现在最后一位,
每一次都是从第一个变量开始比较,

		public static void bubbleSort(int[] arr) {
			for(int x=0;x<arr.length-1;x++) {
				for(int y=0;y<arr.length-x-1;y++) {//-x让每一次比较元素减少,-1避免角标越界
					if(arr[y]>arr[y+1]) {
					   int temp=arr[y];
					   arr[y]=arr[y+1];
					   arr[y+1]=temp;
					}
				}
			}
		}

结果

实际代码中,直接使用java内部的排序功能,直接调用Arrays.sort(arr);即可。

package com.hira;
import java.util.*;
public class ArrayDemo3 {

	public static void main(String[] args) {
		int[] arr= {1,19,5,2,9,21,11};
		printArray(arr);
		//selectSort(arr);
		//bubbleSort(arr);
		Arrays.sort(arr);
		printArray(arr);
	

	}
	
	//定义一个功能,用于打印数组中的元素,元素间用逗号隔开
		public static void printArray(int[] arr) {
			for(int x=0;x<arr.length;x++) {
				if(x!=arr.length-1) {
					System.out.print(arr[x]+",");
					
				}else {
				    System.out.println(arr[x]);
				}
			}
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章