• 冒泡、选择、二分查找排序


    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);
    		
    		
    	}
    
    }
    

      

  • 相关阅读:
    UIWindowLevel详解 一片
    关于博客的原创和转载的一点儿看法 一片
    UIViewController生命周期学习笔记 一片
    UINavigationController详解 一片
    UIColor,CGColor,CIColor三者间的区别和联系 一片
    subview事件响应范围 一片
    viewWithTag获取subview规则详解 一片
    FirstResponder 释放问题 一片
    UITabBarController详解 一片
    做IOS开发这一年 一片
  • 原文地址:https://www.cnblogs.com/1020182600HENG/p/6801947.html
Copyright © 2020-2023  润新知