java排序算法

    排序是CODE经常会用到的,在此做一个用JAVA实现的排序算法以供以后忘了的时候有备参考! 

    首先,在排序过程中,经常会对数组中两个元素进行交换,以下是交换算法:

 

public   static   void  swap( int [] array,  int  i,  int  j)  {
        
int temp = array[i];
        array[i] 
= array[j];
        array[j] 
= temp;
    }

1 选择排序

      选择排序其实在前面已经有一篇文章说明了,不过为了此处能讲全排序算法,再次提及.

      选择排序在任何情况下都是O(n2)

public  String[] selectionSort(int[] arrayA) {
        
        for (int i = 0; i < arrayA.length - 1; i++{
            
int minIndex = i;
            
// Find smallest value
            for (int j = i + 1; j < arrayA.length; j++{
                int e1 
= arrayA[j];
                int e2 
= arrayA[minIndex];
                
// Compare two value
                if (e1<e2) {
                    minIndex 
= j;
                }

            }

            
// Swap value if necessary
            if (minIndex != i){
                swap(arrayA,minIndex,j);
            }

        }

        
return arrayA;
    }

2 冒泡排序

       对于平均情况,冒泡排序的性能是O(n2)

public   static   void  bubbleSort( int [] array {
     
for(int i=0;i<array.length-1;i++){
         
boolean swapped=false;
         
for(int j=0;j<array.length;j++){
             
if(array[j]>array[j+1]){
               swap(array,i,j
+1);
               swapped
=tree;
}

}

        
if(!swapped){
           
return;
}

}

}

3 插入排序

       插入排序的最差情况性能是O(n2)

public   static   void  insertionSort( int [] array) {
    
for(int i=1;i<array.length;i++){
        
int itemToInsert=array[i];
        
int j=i-1;
        
while(j>=0){
            
if(itemToInsert<array[j]){
              array[j
+1]=array[j];
              j
--;
}

            
else{
               
break;
}

}

         array[j
+1]=itemToInsert;
}

}

       OK,就到这里了,这是常用的也是数据结构上的三种排序算法,喝杯咖啡去

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值