java学习之—排序

package test3;

public class Sort{
	/**
	 * 冒泡排序
	 * @param array
	 */
	public void bubbleSort(int[] array)
	{
		for (int i = 1; i < array.length; i++)
		{
			for (int j = 0; j < array.length - i; j++)
			{
				if(array[j] > array[j + 1])				//判断相邻两个元素的大小
				{
					int c = array[j];				//保存第一个元素的值
					array[j] = array[j + 1];			//把第二个的值给第一个
					array[j + 1] = c;				//把第一个的值给第二个
				}
			}
		}
		showArray(array);
	}
	
	/**
	 * 选择排序
	 * @param array
	 */
	public void selectSort(int[] array)
	{
		int index;
		for (int i = 1; i < array.length; i++)
		{	
			index = 0;
			for (int j = 1; j <= array.length - i; j++)
			{
				if(array[j] > array[index])		//找到最大值
				{
					index = j;
				}
			}
			int c = array[array.length - i];           //元素最后一个值
			array[array.length - i] = array[index];     //把选出来最大值或最小值放到最后一个值上
			array[index] = c;				//把最后一个值放到选出来最大值或最小值上
		}
		showArray(array);
	}
	/**
	 * 反转排序
	 * @param array
	 */
	public void reverseSort(int[] array)
	{
		System.out.println("数组原有值");
		showArray(array);
		
		int c;
		
		for (int i = 0; i < array.length / 2; i++) {	//循环数组一半
			c = array[i];				//获取第一个值,放入临时变量
			array[i] = array[array.length - 1 - i]; //把最后一个值放到第一个值上
			array[array.length - 1 - i] = c;	//把第一个值放到值上最后一个值上
		}
		
		System.out.println("数组反转值");
		showArray(array);
	}
	
	private void showArray(int[] array){
		
		for(int is : array)
		{
			System.out.print("\t"+is);
		}
		System.out.println();
		
	}
    public static void insertSort(int[] a) {
      int i, j, insertNote;// 要插入的数据
      for (i = 1; i < a.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
        insertNote = a[i];// 设置数组中的第2个元素为第一次循环要插入的数据
         j = i - 1;
        while (j >= 0 && insertNote < a[j]) {
          a[j + 1] = a[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
          j--;
        }
        a[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
      }
    }
}

  

posted @ 2017-10-14 14:51  花儿为何那样红  阅读(243)  评论(0编辑  收藏  举报