排序算法的Java实现

下面是几种排序的用Java的实现:

冒泡排序

public class BubbleSortDemo
{
   /**//*
   * 从前到后扫描序列,比较相邻的两个元素大小,若发现逆序则交换位置 ,
   * 使最大的达到序列的最后位置。然后再从后到前扫描剩下的序列,如此 。
   * 当数列有序后不再继续循环
   */
   private void bubbleSort(int[] numlist)
   {
     int in,out,temp;
     boolean flag = false;
     //从后到前,从最后一项开始到第二项扫描数列。
     for( out=numlist.length-1; out>0;out--)
     {
       flag = true;
       //从第一项到第out项扫描数列
       for(in=0; in<out; in++)
       {
         //当前项大于后项,则交换位置。
         if(numlist[in]>numlist[in+1])
         {
           temp = numlist[in];
           numlist[in] = numlist[in+1];
           numlist[in+1] = temp;
           flag = false;
         }
       }
       if(flag) break;

       for(int i=0; i<numlist.length; i++)
         System.out.print(numlist[i]+ " ");
       System.out.println();
     }
   }
   //输出数列
   public void display(int[] numlist)
   {
     for(int i=0; i<numlist.length; i++)
       System.out.print(numlist[i]+ " ");
     System.out.println();
   }

   public static void main(String[] args)
   {
     BubbleSortDemo sort = new BubbleSortDemo();
     int num[] = {4,11,17,6,1,2,13,15};

     System.out.println("原序是:");
     sort.display(num);
     System.out.println("每次冒泡排序后是:");
     sort.bubbleSort(num);
   }
}

时间: 2024-12-02 11:02:31

排序算法的Java实现的相关文章

排序算法的Java实现全攻略_java

Collections.sort() Java的排序可以用Collections.sort() 排序函数实现. 用Collections.sort方法对list排序有两种方法: 第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public class User implements Comparable<User>{ private String name; private Integer order; public String

排序算法(Java)——那些年面试常见的排序算法

前言 排序就是将一组对象按照某种逻辑顺序重新排列的过程.比如信用卡账单中的交易是按照日期排序的--这种排序很可能使用了某种排序算法.在计算时代早期,大家普遍认为30%的计算周期都用在了排序上,今天这个比例可能降低了,大概是因为现在的排序算法更加高效.现在这个时代数据可以说是无处不在,而整理数据的第一步往往就是进行排序.所有的计算机系统都实现了各种排序算法以供系统和用户使用. 即使你只是使用标准库中的排序函数,学习排序算法仍然有很大的实际意义: - 排序算法往往是我们解决其他问题的第一步 - 排序

选择排序算法的JAVA实现

package Utils.Sort; /** *@author Linyco *利用选择排序法对数组排序,数组中元素必须实现了Comparable接口. */ public class ChooseSort implements SortStrategy { /** *对数组obj中的元素以选择排序算法进行排序 */ public void sort(Comparable[] obj) { if (obj == null) { throw new NullPointerException("T

java排序算法

Java 1.0和1.1库都缺少的一样东西是算术运算,甚至没有最简单的排序运算方法.因此,我们最好创建一个Vector,利用经典的Quicksort(快速排序)方法对其自身进行排序. 编写通用的排序代码时,面临的一个问题是必须根据对象的实际类型来执行比较运算,从而实现正确的排序.当然,一个办法是为每种不同的类型都写一个不同的排序方法.然而,应认识到假若这样做,以后增加新类型时便不易实现代码的重复利用. 程序设计一个主要的目标就是"将发生变化的东西同保持不变的东西分隔开".在这里,保持不

Java排序算法总结之插入排序_java

本文实例讲述了Java插入排序方法.分享给大家供大家参考.具体分析如下: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到插入排序法.本文主要介绍的是插入排序的java实现.   插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的.个数加一的有序数据.比较和交换的时间复杂度为O(n^2),算法自适应,对于数据已基本有序的情况,时间复杂度为O(n),算法稳定,开销很低.算法适合于数据已基本有序或者数据量

Java排序算法总结之希尔排序_java

本文实例讲述了Java排序算法总结之希尔排序.分享给大家供大家参考.具体分析如下: 前言:希尔排序(Shell Sort)是插入排序的一种.是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名.本文主要介绍希尔排序用Java是怎样实现的. 希尔排序(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序.希尔排序并不稳定,O(1)的额外空间,时间复杂度为O(N*(logN)^2).最坏的情况下的执行效率和在平均情况下的执行效率相

java实现希尔排序算法_java

希尔排序算法的基本思想是:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组内进行直接插人排序:然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<-<d2<d1),即所有记录放在同一组中进行直接插入排序为止.该方法实质上是一种分组插入方法. //带增量的插入排序 public static void shellSort(int[] array) { int len =

Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法)_java

一.插入排序算法实现java版本 public static int[] insert_sort(int[] a) { for (int i = 0; i < a.length; i++) { for(int j=i+1;j>0&&j<a.length;j--) { if(a[j]<a[j-1]) { int tmp = a[j]; //这样定义初始化逻辑上是可以的,j变量,每次tmp的值变化的 a[j] = a[j-1]; a[j-1] = tmp; } } }

java实现折半排序算法_java

折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中.由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采用折半查找的方法来加快寻找插入点的速度. public static void halfSort(int[] array) { int low, high, mid; int tmp, j; for (int i = 1; i < array.length; i++) { tm