基本的几个排序

来源:互联网 发布:linux cdn 测试 编辑:程序博客网 时间:2024/05/17 06:59

1.插入排序算法:

           将一组无序的数字排列成一排,左端第一个数字为已经完成排序的数字,其他为未排序数字。然后,从左到右依次将未排序的数字插入到已经排序的数字中。

   示例:5  3  6  9  4  7  2

import java.io.*;public class my {    public static void main(String args[])    {      int[] a={5,3,6,9,4,7,2};      for(int i=1;i<a.length;i++){      //int tmp=a[i];      for(int j=0;j<i;j++){      if(a[i]<a[j]){      int tmp=a[i];      for(int k=i;k>j;k--)      a[k]=a[k-1];      a[j]=tmp;      }      }      }      for(int i=0;i<a.length;i++)      System.out.print(a[i]+" ");   }}

2.选择排序

        选取未排序列中的最大数,放在尾部(和尾部元素调换),作为有序序列;然后再选出未排序列中的最大数,和尾部调换,作为有序序列的一个元素;如此反复。

import java.io.*;public class my {    public static void main(String args[])    {      int[] a={5,3,6,9,4,7,2};      for(int i=a.length-1;i>=1;i--){      int max=0;      int tmp=a[0];      for(int j=1;j<=i;j++){      if(a[j]>tmp){      tmp=a[j];      max=j;      }      }      a[max]=a[i];      a[i]=tmp;      }      for(int i=0;i<a.length;i++)      System.out.print(a[i]+" ");   }}

3.冒泡排序

       首先将一组无序的数字排列成一排,再从做点开始将相邻两个数字进行比较,将大的放到后面。每轮都是将未排序列中的最大数字冒泡到最后成为有序列的一员。

import java.io.*;public class my {    public static void main(String args[])    {      int[] a={5,3,6,9,4,7,2};      for(int i=a.length-1;i>0;i--){      int max=a[0];      int tmp=0;      for(int j=1;j<=i;j++)      {      if(a[j]>max) {      tmp=j;      max=a[j];        }       }      a[tmp]=a[i];      a[i]=max;      }      for(int i=0;i<a.length;i++)      System.out.print(a[i]+" ");   }}




 

原创粉丝点击