用java实现3种基本的排序算法

   折腾了几天,在高人的指点下总算搞定了这三个算法。

PS:感谢long_drago(会飞的龙)

public class SelectionSort                //选择排序算法
{
 public static void sort(int[] a)
 {
  int index,indexOfNextSmallest;
  for(index=0;index<a.length-1;index++)
  {
   indexOfNextSmallest=indexOfSmallest(index,a);
   interchange(index,indexOfNextSmallest,a);
  }
 }
 
 private static int indexOfSmallest(int startIndex,int[] a)
 {
  int min=a[startIndex];
  int indexOfMin=startIndex;
  int index;
  for(index=startIndex+1;index<a.length;index++)
  if(a[index]<min)
  {
   min=a[index];
   indexOfMin=index;
  }
  return indexOfMin;
 }
 
 private static void interchange(int i,int j,int[] a)
 {
  int temp;
  temp=a[i];
  a[i]=a[j];
  a[j]=temp;
 }
}

 

public class BubbleSort       //冒泡排序算法
{
 public static void sort(int[] a)
 {
    int index;
   for(index=0;index<a.length-2;index++)
   {
    changeNearby(a,index);
   }
 }
 
 private static void changeNearby(int[] a,int xunhuankongzhi)
 {
  int i,j;
  for(i=0;i<a.length-1-xunhuankongzhi;i++)
  {
   if(a[i]>a[i+1])
    {
     j=a[i];
     a[i]=a[i+1];
     a[i+1]=j;
     }
   
  }
 }
}

 

public class InsertionSort    //插入排序算法
{
 public static int[] sort(int[] a, int changdu) {
int[] temp = new int[changdu];
int i;
for (i = 1; i <= temp.length; i++)
{
temp[i - 1] = move(a, i);
}
return temp;
}

private static int move(int[] a, int i)
 {

int min = a[i-1];
int smallindex = 0;
int index;
for (index = i; index < a.length; index++)
{
if (a[index] < min)
 {
min = a[index];
smallindex = index;
}
}
for (int j = smallindex; j > 0; j--)
{
a[j] = a[j - 1];

}
a[i - 1] = min;
return a[i - 1];
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值