DOC

java_arithmetic

By Elaine Roberts,2014-10-27 05:45
13 views 0
java_arithmetic

    排序的java实现:

    Java代码

    1.import java.util.*;

    2. public class BubbleSort{

    3. public void sort(int[] a){ 4. for(int i=0;i

    5. for(int j=a.length-1;j>=i+1;j--){ 6. if(a[j]

    7. int tmp =a[j];

    8. a[j]=a[j-1];

    9. a[j-1]=tmp;

    10.}

    11.}

    12.}

    13.}

    14.public static void main(String[] args){

    15.int[] a = {1,6,3,8,1,56,};

    16.BubbleSort bs = new BubbleSort();

    17.bs.sort(a);

    18.System.out.println(Arrays.toString(a));

    19.}

    20.}

    21.

    22.2 InsertSort

    23.import java.util.*; 24.public class InsertSort{ 25.private int i=0;

    26.public void sort(int[] a){ 27.for(int j=1;j

    28.int keys = a[j];

    29.i =j-1;

    30.while(i>=0&&a[i]>keys){

    31.a[i+1]=a[i];

    32.i--;

    33.}

    34.a[i+1]=keys;

    35.}

    36.}

37.public static void main(String[] args){

    38.InsertSort i = new InsertSort();

    39.int[] f={5,2,4,6,1,3,0};

    40.i.sort(f);

    41.System.out.println(Arrays.toString(f));

    42.}

    43.}

    44.3 MergeSort

    45.import java.util.*; 46.public class MergeSortTest{ 47.private int[] l,r1; 48.public void merge(int[] a,int p,int q,int r){

    49.int n1 =q-p+1;

    50.int n2 = r-q;

    51.l=new int[n1];

    52.r1 = new int[n2+1];

    53.for(int i=0;i

    l[i]=a[p+i]; 54.

    55.}

    56.l[n1-1]=Integer.MAX_VALUE;

    for(int i=0;i 57.

    58.r1[i]=a[q+i];

    59.}

    60.r1[n2] =Integer.MAX_VALUE; 61.int i=0;

    62.int j=0;

    63.for(int k=p;k

    64.if(l[i]<=r1[j]){ 65.a[k]=l[i];

    66.i=i+1;

    67.}else{

    68.a[k]=r1[j];

    69.j=j+1;

    70.}

    71.}

    72.}

    73.public void mergeSort(int[] a,int p,int r){

    74.if(p+1

    75.int q=(p+r)/2;

    76.mergeSort(a,p,q); 77.mergeSort(a,q,r); 78.merge(a,p,q,r);

    79.}

    80.}

81.public static void main(String[] args){

    82.int[] a1 = {3,41,52,26,38,57,9,49};

    83.MergeSortTest mst =new MergeSortTest();

    84.mst.mergeSort(a1,0,a1.length); 85.System.out.println(Arrays.toString(a1));

    86.}

    87.}

    88.4 SelectionSort

    89.import java.util.*; 90.public class MergeSortTest{ 91.private int[] l,r1; 92.public void merge(int[] a,int p,int q,int r){

    93.int n1 =q-p+1;

    94.int n2 = r-q;

    95.l=new int[n1];

    96.r1 = new int[n2+1];

    97.for(int i=0;i

    l[i]=a[p+i]; 98.

    99.}

    100. l[n1-1]=Integer.MAX_VALUE;

     for(int i=0;i 101.

    102. r1[i]=a[q+i];

    103. }

    104. r1[n2] =Integer.MAX_VALUE; 105. int i=0;

    106. int j=0;

    107. for(int k=p;k

    108. if(l[i]<=r1[j]){

    109. a[k]=l[i];

    110. i=i+1;

    111. }else{

    112. a[k]=r1[j];

    113. j=j+1;

    114. }

    115. }

    116. }

    117. public void mergeSort(int[] a,int p,int r){

    118. if(p+1

    119. int q=(p+r)/2;

    120. mergeSort(a,p,q); 121. mergeSort(a,q,r); 122. merge(a,p,q,r);

    123. }

    124. }

125. public static void main(String[] args){

    126. int[] a1 = {3,41,52,26,38,57,9,49}; 127. MergeSortTest mst =new MergeSortTest();

    128. mst.mergeSort(a1,0,a1.length); 129. System.out.println(Arrays.toString(a1));

    130. }

    131. }

    132. 5 HeapSort

    133. import java.util.*; 134. public class HeapSort{ 135. private int largest; 136. public int left(int i){ 137. return 2*i+1;

    138. }

    139. public int right(int j){ 140. return 2*j+2;

    141. }

     public void maxHeapify(int[] a,int i){ 142.

    143. int l=left(i);

    144. int r=right(i);

     if((la[i])){ 145.

    146. largest=l;

    147. }else{

    148. largest=i;

    149. }

    150. if((ra[largest])){ 151. largest=r;

    152. }