简单面试前算法一览java

1.排序

 

冒泡,快速排序

 

 2.查找

二分查找

 

 

 

 

3.链表

 

翻转链表

 

 

合并链表

 

 

 

 

 是否有环

 

 

 

b. 快慢指针

 

  1. public class QuickSort {
  2.  
    public static void quickSort(int[] arr,int low,int high){
  3.  
    int i,j,temp,t;
  4.  
    if(low>high){
  5.  
    return;
  6.  
    }
  7.  
    i=low;
  8.  
    j=high;
  9.  
    //temp就是基准位
  10.  
    temp = arr[low];
  11.  
     
  12.  
    while (i<j) {
  13.  
    //先看右边,依次往左递减
  14.  
    while (temp<=arr[j]&&i<j) {
  15.  
    j--;
  16.  
    }
  17.  
    //再看左边,依次往右递增
  18.  
    while (temp>=arr[i]&&i<j) {
  19.  
    i++;
  20.  
    }
  21.  
    //如果满足条件则交换
  22.  
    if (i<j) {
  23.  
    t = arr[j];
  24.  
    arr[j] = arr[i];
  25.  
    arr[i] = t;
  26.  
    }
  27.  
     
  28.  
    }
  29.  
    //最后将基准为与i和j相等位置的数字交换
  30.  
    arr[low] = arr[i];
  31.  
    arr[i] = temp;
  32.  
    //递归调用左半数组
  33.  
    quickSort(arr, low, j-1);
  34.  
    //递归调用右半数组
  35.  
    quickSort(arr, j+1, high);
  36.  
    }
  37.  
posted @ 2021-05-13 15:54  abcdefghijklmnop  阅读(74)  评论(0编辑  收藏  举报