美文网首页
基本排序算法

基本排序算法

作者: shuixingge | 来源:发表于2016-09-17 12:10 被阅读18次

冒泡算法

public void BubbleSort(int[] array){
  if(array==null||array.length==0)
            return;
  boolean flag=true;
  for(int i=0;i<array.length&&flag;i++){
             flag=false;
       for(int j=array.length-2;j>=i;j--){
               if(array[j]>array[j+1]){
                      Swap(array[j],array[j+1]);
                      flag=true;      
               } 
      }
  }
}

简单选择排序

public void SelectSort(int [] array){
    if(array==null&&array.length==0)
            return;
    for(int i=0;i<array.length;i++){
        for(int j=i+1;j<array.length;j++){
                 int min=i;
                 if(array[j]<array[min]){
                       min=j;
                }
       }
              if(i!=min)
              Swap(min, i);
   }
  
}
堆排序
public void HeapSort(int[] array){
      if(array==null||array.length==0)
             return;
      for(int i=array.length/2-1;i>=0;i--){
           HeapJust(array, i, array.length-1);
      }
      for(int i=array.length-1;i>=0;i--){
              Swap(array, 0,i );
              HeapJust(array, 0, i-1);
      }
}
public void HeapJust(int[] array,int s, int m){
        int j;
        int temp=array[s];
        for(j=2*s; j<=m; j=2*j){
          if(j<m&&array[j]>array[j+1])
                j++;
          if(temp>array[j])
               break;
          array[s]=array[j];
          s=j;
     }
         array[s]=temp;
}

快排

public void  QuickSort(int[] array){
      QSort(array,0,array.length-1);
}
public void QSort(int[] array,int low,int high){
       int pivot;
       if(low<high){
             pivot=Partion(array,low,high);
             QSort(array,low, pivot-1);
             QSort(array,pivot+1,high);
       }
}
public int  Partion(int array, int low,int high){
      int pivotKey=array[0];
      while(low<high){
              while(low<high&&array[high]>=pivotkey)
                   high--;
              swap(array,low,high);
              while(low<high&&array[low]<=pivotkey)
                       low++
              swap(array,low,high);
      }
     return low;
}

归并排序

 public void MergeSort(int [] array ){
         if(array==null||array.length==0)
               return;
         MSort(array, temp,0, array.length);
          
 }
时间复杂度

相关文章

  • 排序算法

    排序算法 排序是最基本的算法之一,常见的排序算法有插入排序、希尔排序、选择排序、冒泡排序、堆排序、归并排序及快速排...

  • Object-C实现常见十大算法(冒泡、选择、归并、双路、三路.

    我们经常会在时项目使用各种算法,比如排序.排序算法是最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排...

  • 2022-03-01

    1.排序算法: 到底什么是排序?-它是排列列表中项目顺序的算法。 重要的排序算法—— 冒泡排序:冒泡排序是最基本的...

  • 10分钟看懂10大经典算法(Swift代码实现)

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进...

  • 排序算法

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中...

  • Python实现十大经典排序算法

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进...

  • 【算法-排序算法-基本排序算法】

    在快速排序算法总结的时候,介绍过基本排序算法包括选择排序、冒泡排序和插入排序。本章把他们三个放在一起总结一下 冒泡...

  • Swift的十大经典排序算法总结

    Swift的十大经典排序算法总结 排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排...

  • 冒泡排序算法

    冒泡排序(Bubble Sort)算法是所有排序算法中最简单、最基本的一种。冒泡排序算法的思路就是交换排序,通过相...

  • Java学习笔记——十大经典排序算法总结

    内容几乎完全来源于网络 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部...

网友评论

      本文标题:基本排序算法

      本文链接:https://www.haomeiwen.com/subject/ecpiettx.html