Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序


1.冒泡排序:
public class BubbleSort {
 public  static  void  main  (String  [] args ){
  
  int values []={2,4,6,8,10};
  sort(values);
  for (int i=0;i<values.length;i++){
   System.out.println("index:"+i+"   "+"value:"+values[i]);
  }
  
  
 }
 private static void sort(int[] values) {
  // TODO Auto-generated method stub 
  int temp;
  for(int i=0;i<values.length;i++){
   for(int j=0;j<values.length-i-1;j++){
    temp=values[j];
    values[j]=values[j+1];
    values[j+1]=temp;
   }
  }
  
 }
 
}
2.插入排序
/**
 * 插入排序
 * @author Administrator
 *
 */
public class InsertSort{
	public static int [] values=new int []{3,2,5,6,8,7,1,4,9,10};
	public static void main(String[] args) {
		  //从数组第二个元素开始排序,因为第一个元素本身肯定是已经排好序的        
		for(int i=0;i<values.length;i++){
			  // 复杂度 n         
			int key=values[i];
			int j=i-1;
		 //依次跟之前的元素进行比较,如果发现比前面的原素小,则交换位置,最终完成排序。
			while(j>=0  && values[j]>key){
				
				values[j+1]=values[j];
				values[j]=key;
				j--;
			}
		}
		 /*        
		   *  所以最终复杂度为n*n=n^2。
		   *  最优情况下(即都已经排列好的情况下),第二个n=1, 所以在最优情况下,复杂度为n。     
		   * 
		   */      
		  // 打印数组
		
		printArray();
	}
	private static void printArray() {
		for (int i : values){
			System.out.print(i+ " ");
		}
		
	}
	
	
	
}
 
3.快速排序
public class QuickSort {    
 //待排数组  
 private static int[] input = new int[] { 2, 1, 5, 4, 9, 8, 6, 7, 10, 3 };    
 public static void main(String[] args) {         
  //快速排序       
  quickSort(input, 0, input.length - 1);     
  //打印数组      
  printArray();   
  }
private static void quickSort(int[] array, int from, int to) {     
 if (from < to) {          
  int temp = array[to];           
  int i = from - 1;           
  for (int j = from; j < to; j++) {           
   if (array[j] <= temp) {                  
    i++;                    
    int tempValue = array[j];                 
    array[j] = array[i];                  
    array[i] = tempValue;               
    }           
   }           
  array[to] = array[i+1];          
  array[i+1] = temp;           
  quickSort(array, from, i);           
  quickSort(array, i + 1, to);    
  }     }      
private static void printArray() {      
 for (int i : input) {         
  System.out.print(i + " ");    
  }   
 } 
} 
4.选择排序
public class SelectionSort {  
 private static int[] input = new int[] { 2, 1, 5, 4, 9, 8, 6, 7, 10, 3 };     
 public static void main(String[] args) {      
  for (int i=0; i<input.length-1; i++) {
   //复杂度:n         
   int key = input[i];          
   int index = i;         
   //比较当前值和下一个值的关系,记录下较小值的值和索引数,用于交换。        
   for (int j=i+1; j<input.length; j++) {
    //复杂度:1+2+...+(n-1)=Θ(n^2)           
    key = key < input[j] ? key : input[j];          
    index = key < input[j] ? index : j;          
    }           
   input[index] = input[i];         
   input[i] = key;        
   }        
  /*         
   * 复杂度分析:     
   * 最坏情况下,复杂度为:n*n=n^2(若略微精确的计算即为:n-1+1+2+...+n-1=(2+n)*(n-1)/2,       
   * 所以复杂度仍为n^2。        
   * 最优情况下,由于不论原数组是否排序好,均需要全部遍历以确定当前的最小值,所以复杂度不变仍未n^2。          
   */       
  //打印数组       
  printArray();    
  }      
 private static void printArray() {   
  for (int i : input) {        
   System.out.print(i + " ");     
   }    
  }   
 } 
 5、交换排序
import java.util.Arrays;


public class Swapsort {

public static void main(String[] args) {
int [] values=new int[]{
(int) (Math.random()*100),
(int) (Math.random()*100),
(int) (Math.random()*100),
(int) (Math.random()*100),
};

System.out.println(Arrays.toString(values));
swap(values);
System.out.println(Arrays.toString(values));

}


private static void swap(int[] values) {
// TODO Auto-generated method stub
int temp;
int len=values.length;
for(int i=0;i<len/2;i++){
temp=values[i];
   values[i]=values[len-i-1];
   values[len-i-1]=temp;
}
}


}

 






为了在Windows安装ADB工具,你可以按照以下步骤进行操作: 1. 首先,下载ADB工具包并解压缩到你自定义的安装目录。你可以选择将其解压缩到任何你喜欢的位置。 2. 打开运行窗口,可以通过按下Win+R键来快速打开。在运行窗口中输入"sysdm.cpl"并按下回车键。 3. 在系统属性窗口中,选择"高级"选项卡,然后点击"环境变量"按钮。 4. 在环境变量窗口中,选择"系统变量"部分,并找到名为"Path"的变量。点击"编辑"按钮。 5. 在编辑环境变量窗口中,点击"新建"按钮,并将ADB工具的安装路径添加到新建的路径中。确保路径正确无误后,点击"确定"按钮。 6. 返回到桌面,打开命令提示符窗口。你可以通过按下Win+R键,然后输入"cmd"并按下回车键来快速打开命令提示符窗口。 7. 在命令提示符窗口中,输入"adb version"命令来验证ADB工具是否成功安装。如果显示版本信息,则表示安装成功。 这样,你就成功在Windows安装ADB工具。你可以使用ADB工具来执行各种操作,如枚举设备、进入/退出ADB终端、文件传输、运行命令、查看系统日志等。具体的操作方法可以参考ADB工具的官方文档或其他相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [windows环境安装adb驱动](https://blog.youkuaiyun.com/zx54633089/article/details/128533343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows安装使用ADB简单易懂教程](https://blog.youkuaiyun.com/m0_37777700/article/details/129836351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值