zoukankan      html  css  js  c++  java
  • 【Java学习】相关基础算法

    冒泡排序

    原理:比较两个相邻的元素,将值大的元素交换至右端,然后在剩下数中比较两个相邻的元素,将值大的元素交换到剩下数的右端,直到所有的数排好序。

    思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

    N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。

    冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public static void main(String[] args) {
            int array[] = {6,3,8,2,9,1};
             
            for(int i=0;i<array.length;i++) {
                for(int j=0;j<array.length-1-i;j++) {<br>                
                    if(array[j] > array[j+1]) {
                        int temp;
                        temp = array[j+1];
                        array[j+1] = array[j];
                        array[j] = temp;
                    }
                }
            }
             
            for(int x:array){
                System.out.println(x);
            }
          }

     

    选择排序

    原理:找到一个最小数交换到最前面,然后剩下数中找到最小数交换到剩下数最前面,一直重复此步骤,知道所有数排好

     1 public int[] selectSortArray(int[] arr){
     2         //选择排序 原理:找到最小数交换到最前面
     3         int n = arr.length;
     4         for (int i = 0; i < n-1; i++) {
     5             int min_index = i;
     6             for (int j = i+1; j < n; j++) {
     7                 if (arr[j] < arr[min_index]) {
     8                     min_index = j;
     9                 }
    10                 if (i != min_index) {
    11                     int temp = arr[i];
    12                     arr[i] = arr[min_index];
    13                     arr[min_index] = temp;
    14 
    15                 }
    16             }
    17         }
    18         return arr;
    19     }
  • 相关阅读:
    rocketMQ
    RocketMQ 事务消息
    Serial,Parallel,CMS,G1四大GC收集器特点小结
    CMS垃圾收集器与G1收集器
    CMS垃圾回收过程
    MySQL中EXPLAIN解释命令 查看索引是否生效
    redis持久化的几种方式
    深入浅出数据库索引原理
    Java中堆内存和栈内存详解
    jvm垃圾回收机制
  • 原文地址:https://www.cnblogs.com/gtea/p/13696094.html
Copyright © 2011-2022 走看看