1 package data.struct.algorithm; 2 3 class BubbleSortArray{//冒泡排序 4 private int[] arr;//封装的内容包括:数组和数组的长度 5 private int len; 6 public BubbleSortArray(int maxSize){ 7 arr=new int[maxSize]; 8 len=0; 9 } 10 public void insert(int value){//数组中插入元素 11 arr[len]=value; 12 len++; 13 } 14 public void display(){ 15 for(int i=0;i<len;i++){ 16 System.out.print(arr[i]+" "); 17 } 18 System.out.println(); 19 } 20 21 public void method_Bubble(){//冒泡排序 22 for(int i=0;i<len-1;i++){ 23 for(int j=i+1;j<len;j++){ 24 if(arr[i]>arr[j]){ 25 swap(arr,i,j); 26 } 27 } 28 } 29 } 30 public void method_insert(){//插入排序 31 int temp,j; 32 for(int i=1;i<len;i++){ 33 temp=arr[i]; 34 j=i; 35 while(j>0&&arr[j]>=temp){ 36 arr[j]=arr[j-1]; 37 j--; 38 } 39 arr[j]=temp; 40 } 41 } 42 public void method_select(){//选择排序 43 int flag; 44 for(int i=0;i<len-1;i++){ 45 flag=i; 46 for(int j=i+1;j<len;j++){ 47 if(arr[j]<arr[flag]){ 48 flag=j; 49 } 50 } 51 if(flag!=i){ 52 swap(arr, i, flag); 53 } 54 } 55 } 56 public void swap(int[] arr2, int i, int j) { 57 int temp=arr2[i]; 58 arr2[i]=arr2[j]; 59 arr2[j]=temp; 60 } 61 public int length(){ 62 return len; 63 } 64 } 65 public class SortMethod { 66 67 /** 68 * @param args 69 */ 70 /* 71 * 练习集中常见的排序算法,冒泡排序、选择排序、插入排序,我们把要排序的数组封装成数组对象 72 */ 73 public static void main(String[] args) { 74 int maxSize=100; 75 BubbleSortArray arr=new BubbleSortArray(maxSize); 76 arr.insert(100); 77 arr.insert(50); 78 arr.insert(54); 79 arr.insert(25); 80 arr.insert(63); 81 arr.insert(78); 82 arr.insert(23); 83 arr.insert(12); 84 arr.insert(6); 85 arr.insert(99); 86 arr.display(); 87 // arr.method_Bubble(); 88 // arr.method_select(); 89 arr.method_insert(); 90 arr.display(); 91 System.out.println(arr.length()); 92 } 93 94 }