zoukankan      html  css  js  c++  java
  • java数组排序之冒泡排序

    上一篇文章说了,选择排序。

    选择排序的原理就是,先确定第一个格子当中的数字是最小的,之后确定第二个格子是其他数字中最小的依次类推。

    这一节当中我们来看下冒泡排序:

    思路:

      1、首先拿第一个数字跟第二个比,如果第二个数字大于第一个数字,那么保持各自位置,否则交换位置,让数字更小的那一个在前面,数字较大的在后面。第一个跟第二个比较完之后,紧接着第二个跟第三个进行比较,比较的原则也是根据第一次比较的原则,这样比较下去一直到数组的结尾,我们得到的是这个数组中的最大值,并且这个最大值在数组的结尾处。也就是说最末尾的值我们现在已经确定了,我们接下来确定的就是次末尾的值。然后再想之前那样循环遍历比较,只是此时的长度减一。

    代码:

    class SelectSort
    {
    	
    	public static void main(String[] args) 
    	{
    		
    		int[] arr = {12,87,34,39,134,4,45,8,21233,99};
    
    		printArr(arr);
    
    		//selectSort(arr);
    		maopaoSort(arr);
    
    		printArr(arr);
    
    	}
    
    	public static void selectSort(int[]  arr){
    
    		for(int i = 0; i<arr.length-1; i++)
    		{
    
    			for(int a = i + 1; a<=arr.length-1 ; a++)
    			{
    			/**
    			*	if(arr[i]>arr[a])
    			*	{
    			*		int temp = arr[i];
    			*		arr[i] = arr[a];
    			*		arr[a] = temp;
    			*	}
    			*/
    				if(arr[i]>arr[a])
    					swap(arr,i,a);
    
    			}
    
    		}
    
    	}
    
    	public static void maopaoSort(int[] arr){
    
    		for(int n = 0 ; n<arr.length-1 ; n++)
    		{
    
    			for(int i = 0 ; i < arr.length-1-n ; i++)
    			{
    
    				if(arr[i]>arr[i+1])
    					swap(arr,i,i+1);
    
    			}
    
    		}
    
    
    	}
    
    
    	public static void printArr(int[] arr)
    	{
    		System.out.print("[");
    		for(int i=0 ; i<arr.length ; i++){
    
    			System.out.print(arr[i]);
    			if(i<arr.length-1)
    				System.out.print(",");
    
    		}
    		System.out.print("]");
    		System.out.println();
    
    	}
    
    	public static void swap(int[]arr,int x, int y)
    	{
    
    		int temp;
    		if(arr[x]>arr[y])
    		{
    
    			temp = arr[x];
    			arr[x] = arr[y];
    			arr[y] = temp;
    
    		}
    
    	}
    
    }
    

      

  • 相关阅读:
    hdu 1203 I NEED A OFFER (0-1背包)
    hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
    hdu 1284 钱币兑换问题 完全背包
    hdu 1114 Piggy-Bank 完全背包
    hdu 2955 Robberies 0-1背包/概率初始化
    hdu 2602 Bone Collector 背包入门题
    hdu 1002 A+B problem II
    hdu 2689 Sort it
    hdu 1874 畅通工程续 Dijkstra
    hdu 1232 畅通工程 并查集
  • 原文地址:https://www.cnblogs.com/sunchuanzhen/p/3324023.html
Copyright © 2011-2022 走看看