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 }