zoukankan      html  css  js  c++  java
  • java常见排序算法

    今天去面试的时候又考了排序算法,排序这个东西,你以为你懂了,但是真正去写的时候才会发现好多细节自己都模棱两可,我写着写着就全都乱了,回来之后赶紧重新写一遍。

    (1)冒泡排序

    public void bubbleSort(int a[]){
      int temp=0;
      for(int i=0;i<a.length-1;i++){
         for(int j=0;j<a.length-1-i;j++){
          if(a[j]>a[j+1]){
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
           }
        }
      }
    }
    时间复杂度:O(N^2)

    (2)快速排序

    public void quickSort(int left,int right,int a[]){
        int l=left;  
        int r=right;
        int pivot=a[(left+right)/2];
        int temp=0;
        while(l<r){
             while(a[l]<pivot)  l++;
             while(a[r]>pivot   r--;
             if(l>r)  break;
             temp=a[l];
             a[l]=a[r];
             a[r]=temp;
             if(a[l]==pivot) --r;
             if(a[r]==pivot  ++l;
          }
        if(l==r){
        l++;
        r--;
        }
        if(left<r)  sort(left,r,a);
        if(l<right)  sort(l,right,a);
    }
    //时间复杂度:O(NlogN)~O(N^2)

    (3)插入排序

    public insertSort(int a[]){
     for(int i=1;i<a.length;i++){
         insertVal=a[i];
         index=i-1;
         while(index>=0&&insertVal<a[j]){
            a[j+1]=a[j];
            index--;
         }
       a[index+1]==insertVal;
      }
    }
    时间复杂度:O(N^2)

    (4)选择排序

    public void selectSort(int a[]){
       int temp=0;
       for(int i=0;i<a.length-1;i+=){
          int min=a[i];
          int minIndex=i;
          for(int j=i+1;j<a.length;j++){
             if(min>a[j]){
               min=a[j];
               minIndex=j;
             }
           }
          temp=a[i];
          a[i]=a[minIndex];
          a[minIndex]=temp;
      }
    }
    //时间复杂度:O(N^2)
     
  • 相关阅读:
    模板方法设计模式(未完待续)
    适配器模式
    g2o:一种图优化的C++框架
    U14.04 teamviewer install
    小教训
    卡2-SLAM
    Odometry的发布和发布odom到base_link的tf变换
    #pragma once
    友元
    Ubuntu 14.04 安装配置强大的星际译王(stardict)词典
  • 原文地址:https://www.cnblogs.com/iceywu/p/11862550.html
Copyright © 2011-2022 走看看