2021.11.14学习记录

一、冒泡排序算法

冒泡排序,顾名思义,像冒泡一样进行从小到大的排序,采用的方式为:

两两元素之间进行比较,如图所示:

将下列元素进行冒泡排序

20 5 60 55 32

首先,让第一个元素与第二个进行比较,如果第一个数大于第二个数,则交换,否则不交换

5 20 60 55 32

在让此时的第二个元素与第三个元素进行比较,方式与第一次相同,剩下的依次进

最后,第一轮的结果如下

5 20 55 38 60

然后进行第二轮,第二轮排序依旧从第一个元素开始,方法与上面相同,但是最后的一个元素不参与比较,因为最后一个元素已经是最大值。最后结果为:

5 20 38 55 60

注:在这里只是举一个例子,在真正的计算中,排序次数可能不止2次,而是数组的长度 - 1 次

其实现代码为:int[] nums = {22,35,4,12,56,62};
        
        //外层循环控制轮数,轮数为numslengtn-1次
        for(int i = 0;i<nums.length - 1;i++){
            
            //内层循环控制比较次数,
            for(int j = 0;j<nums.length - 1 - i;j++){
                if(nums[j] > nums[j+1]){
                    nums[j] = nums[j] + nums[j+1];
                    nums[j+1] = nums[j] - nums[j+1];
                    nums[j] = nums[j] - nums[j+1];
                }
                
                
            }
            
        }
        for (int n :nums){
            System.out.println(n);
        }

二、选择排序算法

从一个数组中,以第一个元素为标准,依次往后作比较,直到找到一个元素比它小,则交换位置,在,让被交换的在依次与剩下的作比较,方法一样,直到找到最小的,放在数组的第一个,此为第一轮,以后每一轮都按照此方法,选择下一个元素作比较,最后的数组为从小到大排列(也可以从大到小排列)

如图:

24 4 116 96 52

2 24 116 96 52

三、插入排序算法

类似于选择排序算法,在数组中,选择第二个元素与第一个元素作比较,若大,则不做处理,若小,则将该元素作为临时变量暂时保存,让第一个元素的值覆盖第二个元素,再将临时变量放在第一个位置;在进行第二轮时,选择第三个作为临时变量保存,再与前面的做比较,,若大,则不做处理,若小,则第二个元素覆盖第三个元素,临时变量覆盖第二个元素,然后,在与第一个元素作比较;后面的第三轮,第四轮依次类推;

注:在这三中算法中,最稳定的为冒泡算法,其余两种都不稳定

Guess you like

Origin blog.csdn.net/taowithsnow/article/details/121319336