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     }
  • 相关阅读:
    适合 C++ 新手学习的开源项目——在 GitHub 学编程
    原生JS封装常用函数
    C# 将excel文件导入到SqlServer数据库
    热配置的部署以及容易失败原因
    连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)
    标志寄存器06 零基础入门学习汇编语言59
    指针07 零基础入门学习C语言47
    标志寄存器05 零基础入门学习汇编语言58
    标志寄存器03 零基础入门学习汇编语言56
    标志寄存器04 零基础入门学习汇编语言57
  • 原文地址:https://www.cnblogs.com/gtea/p/13696094.html
Copyright © 2011-2022 走看看