知识大全 常见排序算法的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

相关参考

知识大全 java的排序算法

  插入排序:    packagerututilalgorithmsupport;  importrututilalgorithmSortUtil;  publicclassInsertSortim

知识大全 各种排序算法的Java实现

各种排序算法的Java实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  packagesxse

知识大全 面试笔试必用-必须掌握的Java排序算法

面试笔试必用-必须掌握的Java排序算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Java排序

知识大全 使用java编写排序算法

   publicclassSort           &

知识大全 Shell排序

排序算法(Java实现):Shell排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  希尔排序

知识大全 排序算法的各趟排序算法

  以关键字序列()为例分别写出执行以下排序算法的各趟排序结束时关键字序列的状态  ()直接插入排序()希尔排序()冒泡排序()快速排序  ()直接选择排序()堆排序()归并排序()基数排序  上述方

知识大全 排序算法的各趟排序算法

  以关键字序列()为例分别写出执行以下排序算法的各趟排序结束时关键字序列的状态  ()直接插入排序()希尔排序()冒泡排序()快速排序  ()直接选择排序()堆排序()归并排序()基数排序  上述方

知识大全 第8章排序(算法设计)习题练习

将哨兵放在R[n]中被排序的记录放在R[n]中重写直接插入排序算法以单链表作为存储结构实现直接插入排序算法 设计一算法使得在尽可能少的时间内重排数组将所有取负值的关键字放在所有取非负值的关键

知识大全 十大排序算法面试题

选择排序选择排序的基本思想是对待排序的记录序列进行n遍的处理第i遍处理是将L[in]中最小者与L[i]交换位置这样经过i遍处理之后前i个记录的位置已经是正确的了选择排序是不稳定的算法复杂度是O(n^)

知识大全 c#与算法--快速排序

  从事net工作两年当初学到的数据结构算法一直没有在实际工作中用到近日闲来无事突发奇想要温习一下简单的数据结构算法今日用了一个下午的时间完成了排序中的快速排序以此作为入驻博客园的首篇随笔!思想向后是