排序算法的Java实现

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

冒泡排序

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

插入排序

public class InsertSortDemo{   private void insertSort(int[] numlist)   {     int in, out,temp;     //从out处分开数列     for(out=1; out0 && temp<numlist[in-1])  //数 列值大于排序值时,       {         numlist[in] = numlist[in-1]; //数列向右移一位         --in; //指针向左移一位       }       numlist[in] = temp; //插入待排序的数据     }   }   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)   {     InsertSortDemo sort = new InsertSortDemo();     int num[] = {4,11,17,6,1,2,13,15};     System.out.print("原序是:");     sort.display(num);     System.out.print("插入排序是:");     sort.insertSort(num);     sort.display(num);   }}

选择排序

public class SelectSortDemo{   /**//*   * 首先找出最小的数据,让它与第一项互换,这样最小的数据项就在第一 位。   * 接着从剩下的元素中找出最小的元素,与第二项互换,使第二小的元素 放在第二位,   * 依此类推,直至整个数列有序。   */   private void selectSort(int[] numlist)   {     int min,in,out,temp;     for(out=0; out<numlist.length; out++)     {       min = out; //将out项设为最小项       for(in=out+1;in<numlist.length; in++)    //从第二 项开始扫描         if(numlist[in]<numlist[min])      //找到最 小项in,将in作为最小项           min = in;       //out项与最小值交换       temp = numlist[out];       numlist[out] = numlist[min];       numlist[min] = temp;     }   }   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)   {     SelectSortDemo sort = new SelectSortDemo();     int num[] = {4,11,17,6,1,2,13,15};     System.out.print("原序是:");     sort.display(num);     System.out.print("选择排序是:");     sort.selectSort(num);     sort.display(num);   }}

筑起梦想的鸟巢,开始人生的长跑,领先每回的冲刺,

排序算法的Java实现

相关文章:

你感兴趣的文章:

标签云: