Java中怎么实现冒泡排序法和选择排序法
创始人
2024-12-22 15:41:36
0次

冒泡排序法

概念:

从前向后(或从后向前)依次比较相邻的元素,若发现逆顺序,则交换。小的向前换,大的向后换,像水底的气泡逐渐向上冒,顾名思义冒泡排序法。

通俗一点就是把大的往上挪!向冒泡一样。

是交换式排序法的一种。冒泡排序法效率较低。

冒泡排序法思路

1:外层循环:控制它要走几次。 假设你有5个数,那就要走4次,最后一次不用走,最后那个数已经在它位置了所以就要length-1次。 2:内层循环:控制逐一比较,如果发现前一个数比后一个数大,则交换。 注意!因为越比较长度就越小了,所以长度要length-1-i。

package com.test_1;public class Demo5_3 {  public static void main(String[] args) {    // TODO Auto-generated method stub    int arr [ ] ={1,6,0,-1,9};    int temp=0;//中间值    //-------冒泡排序法    //外层循环,它决定一共走几趟    for(int i = 0;iarr[j+1]) {          //换位          temp = arr[j];          arr[j] = arr[j+1];          arr[j+1] = temp;        }      }    }    //输出结果    for(int i = 0;i

选择排序法

概念: 第一次从R[0]~R[n-1]中选取最小值,与R[0]交换。第二次从R[1]~R[n-1]中选取最小值与R[1]交换。。。以此类推。 通俗点说就是每次找到后面元素的最小值然后与之交换。 选择排序法效率中。

选择排序思路 1:外层循环:要走几趟,同样是length-1。 2:设置一个最小值。假设第一个就是最小值。 3:设置一个最小值下标 4:内层循环:那你当前的最小值去逐一比较。当有比当前最小值小的数时,记录最小值,记录下标。 5:退出内层循环后就交换位置。

package com.test_1;public class Demo5_3 {  public static void main(String[] args) {    //简单测试数组    int arr [ ] ={1,6,0,-1,9,1000,-1000,98,-687};    //调用选择排序法    Select select = new Select();    select.sort(arr);  }}//--------------选择排序法class Select{  public void sort(int arr[]){    //中间值    int temp = 0;    //外循环:我认为最小的数,从0~长度-1    for(int j = 0; jarr[k]) {          //修改最小          min=arr[k];          minIndex=k;        }      }      //当退出内层循环就找到这次的最小值      //交换位置      temp = arr[j];      arr[j]=arr[minIndex];      arr[minIndex]=temp;    }    //输出结果    for(int i = 0;i

最后再比较一下两个排序法之间的效率差异: 代码

package com.test_1;import java.util.Calendar;public class Demo5_3 {  public static void main(String[] args) {    //构建一个庞大的无序数组用于测试时间    int len=100000;    int arr1 [] = new int [len];    for(int i=0;iarr[j+1]) {          //换位          temp = arr[j];          arr[j] = arr[j+1];          arr[j+1] = temp;        }      }    }      /*//输出结果        for(int i = 0;iarr[k])         {          //修改最小          min=arr[k];          minIndex=k;        }      }      //当退出内层循环就找到这次的最小值      //交换位置      temp = arr[j];      arr[j]=arr[minIndex];      arr[minIndex]=temp;    }    /*//输出结果    for(int i = 0;i

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...