面经,基础算法

1.排序

在这里插入图片描述

1.冒泡排序
package sort; /** * Created by david on 2018/8/16 * 冒泡排序 */
public class BubbleSort
 {    
 	private static int[] bubbleSort(int[] a)
 	 {       
		 int len = a.length;        
 		for (int i = 1; i < len - 1; i++) 
 		{           
 			for (int j = 1; j < len - 1-i; j++)
 			 {               
  				if (a[j + 1] < a[j]) 
  				{                   
  					 swap(a, j + 1, j);               
  				 }         
    		   }       
        }      
	return a;   
     //交换方法   
	private static void swap(int[] a, int i, int j)
	{        
		int tmp = a[i];        
		a[i] = a[j];       
		a[j] = tmp;    
	} 
	//测试    
	public static void main(String[] args)
	{       
		int[] a = {1, 4, 6, 8, 99, 9, 2, 99};        
		int[] sort = bubbleSort(a);       
   		for (int s : sort) 
		{            
			System.out.print(s + " ");       
     	   }      
	}
}
2.快速排序
package sort; /** * Created by david on 2018/8/16 
* 快速排序 * 不稳定,时间复杂度 最理想 O(nlogn) 
* 最差时间O(n^2) */
public class QuickSort 
{    
	private static int[] quickSort(int[] a, int low, int high)
	{       
 		 //中心点      
 	 	int mid = 0;        
   	 	if (low < high)
    		{
    			id = partition(a, low, high);          
   	 		quickSort(a, low, mid - 1);          
    			quickSort(a, mid + 1, high);      
   		}       
    		return a;  
	}
	private static int partition(int[] a, int low, int high) 
	{        
		int b = a[low];       
		while (low < high)
		{           
			while (low < high && a[high] >= b)
			{                
				high--;            
			}            
			a[low] = a[high];            
			while (low < high && a[low] <= b) 
			{                
				low++;            
			}            
			a[high] = a[low];        
		}        
		a[low] = b;        
		return low;    
	}
	//测试    
	public static void main(String[] args) 
	{        
		int[] a = {1, 14, 6, 8, 99, 9, 2, 99};        
		int[] sort = quickSort(a, 0, 7);        
		for (int s : sort) 
		{            
			System.out.print(s + " ");        
		}    
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yawn__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值