实现一个类,把冒泡和插入封装到两个函数中去(声明两个函数,一个是冒泡,一个是插入),且进行调用和调试
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