数组的简单算法 -----学习笔记整理

目录

一、冒泡排序

   1.1、如果数组内有n个元数则比较n-1次     

1.2、冒泡排序示例

二、直接排序

2.1、直接排序示例    

三、反转排序

     


一、冒泡排序

 

  •  原理:比较两个相邻元素,将值大的元素交换至右端
  •  思路:依次比较数组内相邻元素,将小数放在左边。

 

   1.1、如果数组内有n个元数则比较n-1次     

for(int i=0;iarr[j-1]){
    int temp =arr[j];//定义临时变量temp 并赋值
    arr[j] =arr[j-1];//把arr[j-i]保存到arr[j]中
    arr[j-i] = temp;//交换位置
}
}
}
showArray(array);// 输出冒泡排序后的数组元素

public void showArray(int[] array) {//定义一个showArray()方法用于输出冒泡数组的元素
        for (int i : array) {// foreach格式遍历数组   for(数据类型 变量名:数组名)
            System.out.print(" >" + i);// 输出每个数组元素值
        }
        System.out.println();
    }


1.2、冒泡排序示例

  public class BubbleSort {
    public static void main(String[] args) {
        // 创建一个数组,这个数组元素是乱序的
        int[] array = { 63, 4, 24, 1, 3, 15 };


        // 创建冒泡排序类的对象
        BubbleSort sorter = new BubbleSort();


        // 调用排序方法将数组排序
        sorter.sort(array);

             //严格来说类里面不能写语句,语句写在方法里面
    }
    
    /**
     *冒泡排序
     * 
     * @param array
     *            要排序的数组
     */
    public void sort(int[] array) {//创建一个公共的无返回值类型的sort方法

        for (int i = 1; i < array.length; i++) {
            // 比较相邻两个元素,较大的数往后冒泡


            for (int j = 0; j < array.length - i; j++) {
                if (array[j] > array[j + 1]) {
                    int temp = array[j];// 把第一个元素值保持到临时变量中
                    array[j] = array[j + 1];// 把第二个元素值保存到第一个元素单元中
                    array[j + 1] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中
                }
            }
        }
        showArray(array);// 输出冒泡排序后的数组元素
    }
    
    /**
     * 显示数组所有元素
     * 
     * @param array
     *            要显示的数组
     */
    public void showArray(int[] array) {
        for (int i : array) {// foreach格式遍历数组
            System.out.print(" >" + i);// 输出每个数组元素值
        }
        System.out.println();
    }
}


二、直接排序


    思路:定义一个数(int inmax=0),与数组内元素依次比较,如果这个数比数组内元素大,则数组内元素向左移。如果这个数比数组内元素小,则把这个数组内的元素赋值给定义的与数组内元素比较的数

2.1、直接排序示例
    

int []arr =  new int[] {1,2,5,88,100,2000,3,4,199,200};
        int maxindex = 0;
        
        for (int i = 1; i


三、反转排序

 

  •     反转排序就是以相反的顺序把原有的数组内容重新排序
  •     反转排序的基本思路就是把最后一个元素与第一个元素交换位置,倒数第二个元素与第二个元素交换位置,依次推。直到把所有的元素交换位置
  •      反转排序不会按升序或者降序排序,反转排序是数组的两边的元素进行替换,所需次数是数组元素的一半。

 


     

你可能感兴趣的:(Java基础篇)