知识大全 常见排序算法的java实现

Posted 过程

篇首语:从来好事天生俭,自古瓜儿苦后甜。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 常见排序算法的java实现相关的知识,希望对你有一定的参考价值。

  最近在面试 遇到很多排序算法问题总结一下

  定义数组如下

  [java]

  int[] array = new int[] ;

  int[] array = new int[] ;

  首先是插入排序

  [java]

  /**

  * insert sort

  * @param a

  */

  private static void insertSort(int[] a)

  System out println( 插入排序过程 );

  for (int i = ; i < a length; i++)

  int temp = a[i];

  int j = i ;

  while (j >= && a[j] > temp)

  a[j + ] = a[j];

  j ;

  

  a[j + ] = temp;

  System out print( 第 + i + 步 );

  printArray(a);

  

  System out println( 插入排序结果: );

  printArray(a);

  

  /**

  * insert sort

  * @param a

  */

  private static void insertSort(int[] a)

  System out println( 插入排序过程 );

  for (int i = ; i < a length; i++)

  int temp = a[i];

  int j = i ;

  while (j >= && a[j] > temp)

  a[j + ] = a[j];

  j ;

  

  a[j + ] = temp;

  System out print( 第 + i + 步 );

  printArray(a);

  

  System out println( 插入排序结果: );

  printArray(a);

  

  运行结果

  插入排序过程

  第 步

  第 步

  第 步

  第 步

  第 步

  插入排序结果:

  

  希尔排序实现

  [java]

  private static void shellInsertSort(int[] a int start int dk)

  int i j;

  for (i = start + dk; i < a length; i +=dk)

  j = i dk;

  int temp = a[i];

  while(j >= && a[j] > temp)

  a[j + dk] = a[j];

  j = dk;

  

  a[j + dk] = temp;

  

  System out println( 排序结果 );

  printArray(a);

  

  private static void shellInsertSort(int[] a int start int dk)

  int i j;

  for (i = start + dk; i < a length; i +=dk)

  j = i dk;

  int temp = a[i];

  while(j >= && a[j] > temp)

  a[j + dk] = a[j];

  j = dk;

  

  a[j + dk] = temp;

  

  System out println( 排序结果 );

  printArray(a);

  

  冒泡排序实现

  [java]

  /**

  * bubble sort

  * @param a

  */

  private static void bubbleSort(int[] a)

  System out println( 冒泡排序过程 );

  for (int i = ; i < a length; i++)

  for (int j = ; j < a length i ; j++)

  if(a[j] > a[j + ])

  int temp = a[j];

  a[j] = a[j + ];

  a[j + ] = temp;

  

  

  System out print( 第 + (i+ ) + 步 );

  printArray(a);

  

  System out println( 冒泡排序结果 );

  printArray(a);

  

  /**

  * bubble sort

  * @param a

  */

  private static void bubbleSort(int[] a)

  System out println( 冒泡排序过程 );

  for (int i = ; i < a length; i++)

  for (int j = ; j < a length i ; j++)

  if(a[j] > a[j + ])

  int temp = a[j];

  a[j] = a[j + ];

  a[j + ] = temp;

  

  

  System out print( 第 + (i+ ) + 步 );

  printArray(a);

  

  System out println( 冒泡排序结果 );

  printArray(a);

  

  运行结果

  冒泡排序过程

  第 步

  第 步

  第 步

  第 步

  第 步

  第 步

  冒泡排序结果

  

  改进的冒泡排序算法

  [java] view plaincopyprint?private static void bubbleSortBetter(int[] a)

  System out println( 改进的冒泡排序过程 );

  boolean bool;

  int i = ;

  do

  bool = false;

  for (int j = ; j < a length i ; j++)

  if(a[j] > a[j + ])

  int temp = a[j];

  a[j] = a[j + ];

  a[j + ] = temp;

  bool = true;

  

  

  i ++;

  System out print( 第 + i + 步 );

  printArray(a);

  while(bool == true && i < a length);

  System out println( 改进的冒泡排序结果 );

  printArray(a);

  

  private static void bubbleSortBetter(int[] a)

  System out println( 改进的冒泡排序过程 );

  boolean bool;

  int i = ;

  do

  bool = false;

  for (int j = ; j < a length i ; j++)

  if(a[j] > a[j + ])

  int temp = a[j];

  a[j] = a[j + ];

  a[j + ] = temp;

  bool = true;

  

  

  i ++;

  System out print( 第 + i + 步 );

  printArray(a);

  while(bool == true && i < a length);

  System out println( 改进的冒泡排序结果 );

  printArray(a);

  

  运行结果

  改进的冒泡排序过程

  第 步

  第 步

  第 步

  改进的冒泡排序结果

  

cha138/Article/program/Java/hx/201311/26844

相关参考