实现一个类,把冒泡和插入封装到两个函数中去(声明两个函数,一个是冒泡,一个是插入),且进行调用和调试

实现一个类,把冒泡和插入封装到两个函数中去(声明两个函数,一个是冒泡,一个是插入),且进行调用和调试

import java.util.Arrays;
/*
 * 实现一个类,把冒泡和插入封装到两个函数中去(声明两个函数,一个是冒泡,一个是插入),且进行调用和调试
 */
public class Encapsulation{
    public static void main(String[] args) {
        int arr[] = {1,66,55,44,22,23};
        Bubble(arr);
        Insertion(arr);
        
    }
    /*
     * 冒泡排序(Bubble Sort) 
     * 比较相邻的元素。
     * 如果第一个比第二个大,就交换他们两个。
     * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。
     * 在这一点,最后的元素应该会是最大的数。
     * 针对所有的元素重复以上的步骤,除了最后一个。
     * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
     */
    public static void Bubble(int arr[]) {
        int len=arr.length-1;
        for(int i=0;i<len;i++) {
            /*不需要和自己比较,比较n-1遍 */
            for(int j=0;j<len-i;j++) {
                /*
                   外循环的i是用来控制内循环的长度的(你可以认为是控制j能到达的最大脚标)
                 j和j+1就代表相邻元素了,遍历一遍就是所有相邻元素比较
                 */
                if(arr[j]>arr[j+1]) {
                    /*元素交换*/
                    int temp =arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println("冒泡排序"+Arrays.toString(arr));
        
    }
    /*
     *插入排序(Insertion Sort)
     * 
     * 从第一个元素开始,该元素可以认为已经被排序;
     * 取出下一个元素,在已经排序的元素序列中从后向前扫描;
     * 如果该元素(已排序)大于新元素,将该元素移到下一位置;
     * 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
     * 将新元素插入到该位置后;
     * 重复步骤2~5。
     */
    public static void Insertion(int arr[]) {
        int len=arr.length;
        for(int i=0; i<len-1;i++) {
            for(int j=i+1;j<len;j++) {
                /*元素交换*/
                if(arr[i]<arr[j]) {
                int temp =arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
                }
            }
        }
        System.out.println("插入排序"+Arrays.toString(arr));
    }
    
}

冒泡排序:冒泡排序

插入排序:插入排序

参考网站:https://www.cnblogs.com/onepixel/articles/7674659.html

猜你喜欢

转载自www.cnblogs.com/anlyf/p/10057534.html