• Java数据结构系列——简单排序:泡、选择、直接进入


    package SimpleSort;
    
    public class SimpleSort {
    	/**
    	 * 冒泡排序:每次循环过程中。小的排在后面的数会像水中的
    	 * 气泡一样慢慢往上冒,所以命名为冒泡排序了,我猜是这样子的.....
    	 */
    	public void BubbleSort(int[] array){
    		for(int i=0;i<array.length;i++){
    			for(int j=array.length-1;j>i;j--){//注意此处j是从后往前循环
    				if(array[j-1]>array[j]){//假设前面的数比其后面的数要大,则交换他们两个的位置
    					swap(array,j);
    				}
    			}
    		}
    	}
    	
    	/**
    	 * 简单选择排序:基本思想为从第一个数開始,每次选择其后面比他小
    	 * 的最小的数与其交换位置
    	 * @param array
    	 */
    	public void SelectSort(int[] array){
    		int min;
    		for(int i=0;i<array.length-1;i++){
    			min=i;
    			for(int j=i+1;j<=array.length-1;j++){//选择数组array中i后面的比
    				                                //array[i]小的最小的数,并将其下标保存在min中
    				if(array[min]>array[j]){
    					min=j;
    				}
    			}
    			
    			if(min!=i){
    				swap(array,i,min);
    			}
    		}
    	}
    	
    	/**
    	 * 直接插入排序:直接插入排序的思想相似于我们日常生活中斗地主时不断摸牌、整理排的过程
    	 * 后面摸上来的扑克牌我们都会依照其牌面点数从小到大的插入到相应的位置
    	 * @param array
    	 */
    	public void InsertSort(int[] array){
    		int i,j,temp;
    		for(i=1;i<array.length;i++){
    			if(array[i]<array[i-1]){
    				temp=array[i];
    				for(j=i-1;j>=0&&array[j]>temp;j--){//注意不要忽略j>=0,否则肯能出现j=-1,造成数组越界
    					array[j+1]=array[j];
    				}
    				array[j+1]=temp;
    			}
    		}
    	}
    	
    	//交换
    	public void swap(int array[],int i,int j){
    		int temp=array[i];
    		array[i]=array[j];
    		array[j]=temp;
    	}
    	
    	//交换
    	public void swap(int array[],int j){
    		int temp=array[j-1];
    		array[j-1]=array[j];
    		array[j]=temp;
    	}
    }
    

  • 相关阅读:
    http与https的区别以及https的加密原理
    android 网络之 httppost
    android 定时器与Canvas结合使用
    逛超市遇到问题了还是好心人多
    获取最新前十篇文章
    做菜 蒸鸡蛋
    使用ASP.NET 2.0 Profile存储用户信息_1[翻译] Level 200
    ajax 笔记不用刷新实现数据的分页显示 2 (上)
    在人力资源树当中,上级对下级员工信息查看修改操作。
    今年入冬于来的第一场雪
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4591952.html
Copyright © 2020-2023  润新知