zoukankan      html  css  js  c++  java
  • 冒泡、选择、二分查找排序

    package com.etc.Arrays;
    
    public class TestBubble {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int a=10;
    		int b=3;
    		
    		//借助第三个变量实现值互换的功能
    		int c=0;
    		c=a;
    		a=b;
    		b=c;
    		
    		System.out.println("a="+a);
    		System.out.println("b="+b);
    		
    		
    		int[] arr=new int[]{5,1,3,2,6,9,10};
    		
    		//冒泡排序:一对一对的进行比较
    		for(int i=0;i<arr.length;i++){//需要比较多少轮
    			for(int j=0;j<arr.length-1-i;j++){//每轮下要比较的次数
    				if(arr[j]>arr[j+1]){//满足条件,则交换两个数组元素的值
    					int temp=0;
    					temp=arr[j];
    					arr[j]=arr[j+1];
    					arr[j+1]=temp;
    				}
    			}
    		}
    		
    		//打印输出数组里每个元素的值
    		for(int k=0;k<arr.length;k++){
    			System.out.print(arr[k]+",");
    		}
    		
    		
    		int[] arr2=new int[]{5,1,3,2,6,9,10};
    		//快速选择排序  :当前元素与其后的所有元素进行比较一次
    		for(int i=0;i<arr2.length;i++){
    			for(int j=i+1;j<arr2.length;j++){
    				if(arr2[i]>arr2[j]){
    					int temp=0;
    					temp=arr2[i];
    					arr2[i]=arr2[j];
    					arr2[j]=temp;
    				}
    			}
    		}
    		
    		System.out.println("
    快速排序后的结果:");
    		for(int i=0;i<arr2.length;i++){
    			System.out.print(arr2[i]+",");
    		}
    		System.out.println(); 
    		
    		//查询某个元素在数组里是否存在
    		for(int i=0;i<arr2.length;i++){
    			if(arr2[i]==6){ 
    				System.out.println("i="+i);
    				break;
    			}
    		}
    		
    		//二分查找
    		int start=0;
    		int end=arr2.length-1;
    		int medium;
    		int medium2=0;
    		int key=7;
    		do{
    			medium=(start+end)/2;
    			if(arr2[medium]==key){
    				System.out.println("你要查找的元素的数组下表为"+medium);
    				break;
    			}else if(medium==medium2){ //查询不存在该元素的下表     方式一
    				System.out.println("该元素不存在"); 
    				break;
    			}/*
    			else if(end==(start+1)&&arr2[medium]!=key){//查询不存在该元素的下表       方式二
    				System.out.println("该元素不存在");
    				break;
    			}*/else if(arr2[medium]>key){
    				end=medium;
    			}else if(arr2[medium]<key){
    				start=medium;
    			}
    			medium2=(start+end)/2;
    		}while(true);
    		
    		
    	}
    
    }
    

      

  • 相关阅读:
    Android Hal 分析
    Android JNI 使用的数据结构JNINativeMethod详解
    MTK GPIO 一些理解
    DEVICE_ATTR
    DEVICE_ATTR
    内核驱动中常见的miscdevice、platform_device、platform_driver
    DEVICE_ATTR实例分析
    虚拟机安装Ubuntu14.04打开FireFox提示Server not found
    Android编译系统中的Kconfig,Makefile,.config编译系统浅析
    几款在线脑图制作工具
  • 原文地址:https://www.cnblogs.com/1020182600HENG/p/6801947.html
Copyright © 2011-2022 走看看