JavaSE——选择排序算法、冒泡排序法、二分查找法

怼烎@ 2024-04-01 18:42 172阅读 0赞

目录

一、选择排序算法

二、冒泡排序算法

三、二分查找法


一、选择排序算法

核心思想:将最小的移动到最左侧,依次排开

  1. int[] arr={3,1,6,2,5};
  2. // 选择排序 此时i是左边元素此次循环开始的下标
  3. // arr.length-1 不包括最后一个元素 这个地方没必要包括最后一个
  4. for(int i=0 ; i<arr.length-1;i++){
  5. // 每次循环,都默认第i位是最小的
  6. int min = i;
  7. // arr.length 包含最后一位
  8. for (int j =i+1;j<arr.length;j++){
  9. if(arr[j]<arr[min]){
  10. // 运行到这里说明j下标小
  11. min=j;
  12. }
  13. }
  14. if(min != i ){
  15. int temp;
  16. temp = arr[min];
  17. arr[min] = arr[i];
  18. arr[i]= temp;
  19. }
  20. }
  21. for (int i = 0; i < arr.length; i++) {
  22. System.out.println(arr[i]);
  23. }

二、冒泡排序算法

核心思想:将最大的移动到右侧

  1. int[] arr={3,1,6,2,5};
  2. for (int i=arr.length-1;i>0;i--){
  3. for(int j =0 ;j<i;j++){
  4. if(arr[j]>arr[j+1]){
  5. int temp;
  6. temp = arr[j];
  7. arr[j]=arr[j+1];
  8. arr[j+1]=temp;
  9. }
  10. }
  11. }
  12. System.out.println(Arrays.toString(arr));

三、二分查找法

  • 建立在排序的基础上
  • 效率高于遍历查找

    int[] arr={3,1,6,2,5};
    // 开始下标以及结束下标

    1. int begin=0;
    2. int end = arr.length-1;

    // 假设查找3这个元素

    1. int element = 3;

    // 先排序

    1. Arrays.sort(arr);
  1. while (begin<=end){
  2. int mid = (begin+end)/2;
  3. if (arr[mid]==element){
  4. // 找到了
  5. System.out.println(element);
  6. return ;
  7. }else if(arr[begin]<arr[mid]){
  8. begin = mid+1;
  9. }else if(arr[begin]>arr[mid]){
  10. end = end-1;
  11. }
  12. }

发表评论

表情:
评论列表 (有 0 条评论,172人围观)

还没有评论,来说两句吧...

相关阅读

    相关 算法排序----二分排序

    现在我来简单叙述一下二分法排序的思想,在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left

    相关 算法排序----冒泡排序

    接下来我将用几篇文章来讲述关于算法排序的思想,首先是最简单的冒泡排序法。它适用于所有的情况,时间复杂度较大 为O(n²)。那么我将用图示和代码来解释这个算法。 首先,冒泡排