Java---冒泡排序、选择排序、反转排序

这几天研究算法的时候重新温习了一遍Java的排序方法,现将Java算法中常用的冒泡排序、选择排序、反转排序复习一遍。

冒泡排序:

package SortArray;

public class MaoPaoSortArray {
	
	//冒泡排序思想:比较相邻的元素,符合条件就交换值

	public static void main(String[] args) {
		int arr[] = new int[] {12,1,32,45,0,2,456,315};
		
		System.out.println("排序前的:");
		for(int m = 0;m < arr.length;m++) {
			System.out.print(arr[m]+"  ");
		}
		System.out.println();
		
		System.out.println("排序后的:");
		for(int i = 0;i < arr.length;i++) {
			
			for(int j = 0;j < arr.length-i-1;j++) {
				
				if(arr[j]

结果:

排序前的:
12  1  32  45  0  2  456  315  
排序后的:
456  315  45  32  12  2  1  0 

选择排序:

package SortArray;

//直接排序法思想:将指定位置的数与其它位置的数对比

public class ZhiJieSortArray {

	public static void main(String[] args) {
		int arr[] = new int[] {12,115,0,2,31,999,666,10};
		 
        System.out.println("交换之前:");  
        for(int num:arr){  
            System.out.print(num+" ");  
        }          
        //选择排序的优化  
        for(int i = 0; i < arr.length - 1; i++) {// 做第i趟排序  
            int k = i;  
            for(int j = k + 1; j < arr.length; j++){// 选最小的记录  
                if(arr[j] < arr[k]){   
                    k = j; //记下目前找到的最小值所在的位置  
                }  
            }  
            //在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换  
            if(i != k){  //交换a[i]和a[k]  
                int temp = arr[i];  
                arr[i] = arr[k];  
                arr[k] = temp;  
            }      
        }  
        System.out.println();  
        System.out.println("交换后:");  
        for(int num:arr){  
            System.out.print(num+" ");  
        }  

	}

}

结果:

交换之前:
12 115 0 2 31 999 666 10 
交换后:
0 2 10 12 31 115 666 999

反转排序:

package SortArray;
import java.util.Arrays;

//反转排序法:对于已经排序好的数组元素,第一个值与最后一个值替换,第二个值与倒数第二个值替换,以此类推,直到把所有数组元素替换

public class FanZhuanSortArray {

	public static void main(String[] args) {
		//sort()先排序
		int arr[] = new int[] {5,0,11,2,15,156,23,25};
		
		System.out.println("sort()法排序后:");
		Arrays.sort(arr);
		for(int i = 0;i < arr.length;i++) {
			System.out.print(arr[i]+"  ");
		}
		
		System.out.println();
		
		//反转排序法
		System.out.println("反转排序法后:");
		for(int j = 0;j < arr.length/2;j++) {
			
			int temp = arr[j];
			arr[j] = arr[arr.length - 1 -j];
			arr[arr.length - 1 - j] = temp;
			
		}
		for(int k = 0;k 

结果:

sort()法排序后:
0  2  5  11  15  23  25  156  
反转排序法后:
156  25  23  15  11  5  2  0 




你可能感兴趣的:(后端-语言-Java)