Skip to content

数据结构与算法

约 164 字小于 1 分钟

2025-12-29

排序算法

⭐快速排序

public void quickSort(int[] arr,int left,int right){
    if(left>= right){
        return;
    }
    // 找到基准元素
	int pivot = arr[left + (right - left)/2];
    
    int gt = right;
    int lt = left;
    int i = left;
    
    while(i <= gt){
        if(arr[i]<pivot){
            swap(arr,lt,i);
            lt++;
            i++;
        }else if(arr[i] > pivot){
            swap(arr,i,gt);
            gt--;
        }else{
            i++;
        }
    }
    quickSort(arr,left,lt -1);
    
    quickSort(arr,gt+1)
    
}


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

数组

⭐买卖股票的最佳时期

public void maxProfit(int[] prices){
    int minPrice = Integer.MAX_VALUE;
    int maxProfit = 0;
    for(int i=0;i<prices.length;i++){
        if(prices[i] < minPrice){
            minPrice = prices[i];
        }else if(prices[i] - minPrice > maxProfit){
            maxProfit = prices[i] - minPrice;
        }
    }
    return
}