设为首页 加入收藏

TOP

主要排序算法Java实现
2014-11-20 18:06:19 】 浏览:822
Tags:主要 排序 算法 Java 实现

  1,冒泡法:


  public class BubbleSortImpl1 {


  public static void BubbleSort(int A[]) {


  int n = A.length;


  for(int i=0;i


  for(int j=0;j


  if(A[j]>A[j+1])


  {


  int temp=A[j];


  A[j]=A[j+1];


  A[j+1]=temp;//直接调用Swap会出错。why?


  }


  }


  }


  }


  public static void swap(int a, int b) {


  int temp = a;


  a = b;


  b = temp;


  }


  /**


  * @param args


  */


  public static void main(String[] args) {


  // TODO Auto-generated method stub


  int A[] = new int[] { 2, 5, 3, 9, 7, 1, 30 };


  BubbleSort(A);


  for (int i = 0; i < A.length; i++) {


  System.out.println(A[i]);


  }


  }


  }


  2,堆排序


  public class HeapSort {


  static void HeapAdjust(int H[],int s,int n){//使H[s...m]称为一个大顶堆


  int rc=H[s];


  int j;


  for(j=2*s;j<=n;j=j*2){


  if(j


  ++j;//j为父节点的最大孩子


  if(rc>=H[j])


  break;//rc应该掺入在j的父位置上


  H[s]=H[j];//j上移


  s=j;


  }


  H[s]=rc;


  }


  static void Heap_Sort(int H[]){


  int n=H.length;


  for(int i=n/2;i>0;i--){


  HeapAdjust(H,i,n);


  }//


  for(int k=n-1;k>1;k--){


  int temp=H[1];


  H[1]=H[k];


  H[k]=temp;//将堆顶记录和 当前未经排序子序列中最后一个记录交换。


  HeapAdjust(H,1,k-1);


  }


  }


  /**


  * @param args


  */


  public static void main(String[] args) {


  // TODO Auto-generated method stub


  int A[]={0,3,5,9,2,7};


  Heap_Sort(A);


  for(int i=0;i


  System.out.print(A[i]);


  }


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇用Java调用doc执行程序 下一篇Java多线程调试如何完成信息输出..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目