目录
一、冒泡排序
1:定义:
2:基本思想
3:算法思路
4:算法逻辑图
5:示例1:将指定数组重新排序
6:示例2:写一个函数,输入任何数组都可以进行排序
二、直接选择排序
1:直接选择排序的逻辑图
2:示例:将指定数组重新排序
三、反转排序
1:定义思想:
2:实验
四、插入排序
1:定义:
2:基本思想
3:实验
一、冒泡排序
1:定义:
类似气泡上涌的动作,会将数据在数组中从小到大或者从大到小不断的向前移动。
2:基本思想
冒泡排序的基本思想是对比相邻的两个元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。
3:算法思路
冒泡算法由双层循环实现,其中外部循环用于控制排序轮数,一 般为要排序的数组长度减1次,因为最后一 次循环只剩下一-个数组元素,不需要对比,同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小,以确定是否交换位置,对比和交换次数随排序轮数而减少。
4:算法逻辑图
![](https://img-blog.csdnimg.cn/569cb906b6ed48ceb5fa7733e92c1250.png)
5:示例1:将指定数组重新排序
![](https://img-blog.csdnimg.cn/0f0fc7be020a4ac59d2fbf6fb7fd244e.png)
![](https://img-blog.csdnimg.cn/54f0883a69654c49a6673702a3c67271.png)
6:示例2:写一个函数,输入任何数组都可以进行排序
![](https://img-blog.csdnimg.cn/140ef508c05f42499e7507702a32a46f.png)
![](https://img-blog.csdnimg.cn/4d7324865a35440a86cb7b38efd33e0f.png)
二、直接选择排序
1:直接选择排序的逻辑图
![](https://img-blog.csdnimg.cn/f168404c90304175b1af1504271a01dc.png)
第一轮:确定下标值为数组长度减1的元素。length-1
第二轮:确定下标值为数组长度减2的元素。length-2
第三轮:确定下标值为数组长度减3的元素。length-3
第四轮:确定下标值为数组长度减4的元素。length-4
第五轮:确定下标值为数组长度减4的元素。length-5
2:示例:将指定数组重新排序
![](https://img-blog.csdnimg.cn/a8e07be99f9549cbb639ea9403ca79b1.png)
![](https://img-blog.csdnimg.cn/3a009a03f3484b70973c9f5b0c1c165b.png)
三、反转排序
1:定义思想:
以相反的顺序把原有数组的内容重新排序。
把数组最后一个元素与第一个元素进行交换,倒数第二个元素与第二个元素进行交换,以此类推,直到把所有数组元素反转替换
2:实验
![](https://img-blog.csdnimg.cn/f8f21bf27fd5430eaf3d9b0a6fd9dc9c.png)
![](https://img-blog.csdnimg.cn/c5402ff0b7714e8bad63eebe01bbd0a6.png)
四、插入排序
1:定义:
插入排序,又叫直接插入排序。实际中,我们玩扑克牌的时候,就用了拆入排序的思想
2:基本思想
在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入,直到整个序列有序
但我们并不能缺点待排元素中究竟哪个部分是有序的,所以我们一开始只能认为第一个元素是有序的,依次将其后面的元素拆入到这个有序序列中来,直到整个序列有序为止
![](https://img-blog.csdnimg.cn/5e8a5cb6374c46c5a41954b243405193.png)
3:实验
![](https://img-blog.csdnimg.cn/76cfa52311c24c3b997aec527abf3b16.png)
![](https://img-blog.csdnimg.cn/e64c728ca73849f4ae97026b9fb5d891.png)