Algorithms 算法学习笔记20180412

今天一方面是补齐了昨天的8种排序算法的动态GIF图演示和算法过程。另一方面,我也要针对Java代码如何实现这些算法进行阐述。很明显这些内容已经有无数人给出了比较简洁的代码实现过程,我只挑选其中几种算法进行说明。相比于算法实现的具体细节,算法的适用范围和复杂度更应该受到关注。

先放上最普通最麻烦的Bubble Sort吧。

public class BubbleSort {

       public static void main(String[] args) {

       int [] a = {1,100,234,44,3,2,4,5};  //给定一个待排序数组a        

       bubbleSort(a,a.length+1);

       System.out.println(Arrays.toString(a)); }

public static int[] bubbleSort(int[] A, int n) {   //排序方法的代码

       for (int i=0;i A[j]){

        int tmp = A[i]; //如果左边元素大于右边,则交换两元素,否则保持不动

         A[i] = A[j]; A[j] = tmp; }  使用三句代码进行元素交换

         }

   }

return A; }

}

然后是插入排序。

public class InsertionSort {

        public int[] insertionSort(int[] A, int n) {

           int i, j, temp;

             for(i = 1; i < n; i++){

                    temp = A[i];         //取i位置的值

             for(j = i; j > 0 && A[j - 1] > temp; j-- ){   //这是两层for循环嵌套

             //如果i元素的值比前一个元素小,则将该值插在该位置

            A[j] = A[j - 1];

}

                A[j] = temp;

}

return A; }

}


接下来是选择排序,它的目标是每次选择剩下元素中最小的值放在最前面。

public class SelectionSort {

      public int[] selectionSort(int[] A, int n) {

        for (int i = 0; i < n - 1; i++) {

            int index = i;

            int j; // 找出最小值的元素下标

               for (j = i + 1; j < n; j++) {

                if (A[j] < A[index]) {

//从第一个元素开始,比较两个元素

              index = j; //如果A[j]小于选定的最小值,则交换对应的index

}

}

         int tmp = A[index];

        A[index] = A[i];

        A[i] = tmp;   //三句代码交换两个元素

} return A;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,410评论 18 399
  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 14,695评论 0 89
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,950评论 0 2
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 11,540评论 1 42
  • 每年春节逼近,朋友间总会有关于大扫除的信息相互传递,尤其是我们女人。 这是一个古老的习俗,从我们很小有记忆开始,临...
    唐薇阅读 1,711评论 0 1

友情链接更多精彩内容