你现在有一个实训,实训目的是“1. 掌握顺序、二分法查找方法及适用场合,并能在解决实际问题时灵活应用。 2. 掌握各种排序(直接插入,希尔,冒泡,快速排序,简单选择,堆排序等)方法及适用场合,并能在解决实际问题时灵活应用。” 请写出实训体会(200字以上)
时间: 2023-03-14 21:09:59 浏览: 76
通过本次实训,我学习了顺序查找和二分查找方法,以及各种排序方法,包括直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序等。我最大的收获就是学会了如何正确使用这些排序和查找方法,以及在解决实际问题时如何灵活应用这些方法。通过这次实训,我更加认识到算法的重要性,它可以帮助我们更快地解决问题,有效提高工作效率。此外,我还学习了如何评估算法的时间和空间复杂度,以及如何选择合适的算法来解决问题。总的来说,我从本次实训中获益匪浅,受益终身。
相关问题
java数组0.0.0.0.0.1.1.1.1.1.1.1.1.1用二分法查找第一个1
Java数组是一种用于存储多个相同类型元素的数据结构。它可以存储基本数据类型(如int、float等)或者引用类型(如String、对象等)。数组在内存中是连续存储的,通过索引可以访问和修改数组中的元素。
二分法是一种高效的查找算法,适用于已排序的数组。它通过将数组分成两部分,然后判断目标元素在哪一部分中,从而缩小查找范围。具体步骤如下:
1. 确定数组的起始索引start和结束索引end。
2. 计算中间索引mid,即mid = (start + end) / 2。
3. 比较中间索引对应的元素与目标元素的大小关系:
- 如果中间元素等于目标元素,则找到了目标元素,返回中间索引。
- 如果中间元素大于目标元素,则目标元素在左半部分,更新结束索引为mid - 1。
- 如果中间元素小于目标元素,则目标元素在右半部分,更新起始索引为mid + 1。
4. 重复步骤2和步骤3,直到找到目标元素或者起始索引大于结束索引。
对于给定的数组[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],我们可以使用二分法查找第一个1的索引。具体步骤如下:
1. 起始索引start为0,结束索引end为13。
2. 计算中间索引mid,即mid = (0 + 13) / 2 = 6。
3. 比较中间索引对应的元素与目标元素1的大小关系:
- 中间元素1等于目标元素1,但我们要找的是第一个1,所以更新结束索引为mid。
4. 重复步骤2和步骤3,直到找到目标元素或者起始索引大于结束索引。
5. 继续二分查找,此时起始索引start为0,结束索引end为6。
6. 计算中间索引mid,即mid = (0 + 6) / 2 = 3。
7. 比较中间索引对应的元素与目标元素1的大小关系:
- 中间元素0小于目标元素1,更新起始索引为mid + 1。
8. 继续二分查找,此时起始索引start为4,结束索引end为6。
9. 计算中间索引mid,即mid = (4 + 6) / 2 = 5。
10. 比较中间索引对应的元素与目标元素1的大小关系:
- 中间元素1等于目标元素1,但我们要找的是第一个1,所以更新结束索引为mid。
11. 继续二分查找,此时起始索引start为4,结束索引end为5。
12. 计算中间索引mid,即mid = (4 + 5) / 2 = 4。
13. 比较中间索引对应的元素与目标元素1的大小关系:
- 中间元素1等于目标元素1,但我们要找的是第一个1,所以更新结束索引为mid。
14. 继续二分查找,此时起始索引start为4,结束索引end为4。
15. 起始索引等于结束索引,查找结束。返回起始索引4。
所以,在给定的数组中,使用二分法查找第一个1的索引为4。
java数组0.0.0.0.0.1.1.1.1.1.1.1.1.1用二分法查找第一个1命令
Java数组是一种用于存储多个相同类型元素的数据结构。它可以存储基本数据类型(如int、float等)或者引用类型(如String、对象等)。数组在内存中是连续存储的,通过索引可以访问和修改数组中的元素。
二分法是一种高效的查找算法,适用于已排序的数组。它通过将数组分成两部分,然后判断目标元素在哪一部分中,从而缩小查找范围。具体步骤如下:
1. 确定数组的起始索引start和结束索引end。
2. 计算中间索引mid,即mid = (start + end) / 2。
3. 比较中间元素arr[mid]与目标元素的大小关系:
- 如果arr[mid]等于目标元素,则找到了目标元素,返回mid。
- 如果arr[mid]大于目标元素,则目标元素在左半部分,更新end为mid-1,回到步骤2。
- 如果arr[mid]小于目标元素,则目标元素在右半部分,更新start为mid+1,回到步骤2。
4. 重复步骤2和步骤3,直到找到目标元素或者start大于end。
对于给定的数组[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],我们可以使用二分法查找第一个1的位置。具体步骤如下:
1. 确定起始索引start为0,结束索引end为12(数组长度减1)。
2. 计算中间索引mid,即mid = (0 + 12) / 2 = 6。
3. 比较中间元素arr与目标元素1的大小关系:
- arr等于目标元素1,但我们要找的是第一个1,所以继续在左半部分查找。更新end为mid-1,即end = 5。
4. 继续查找,计算新的中间索引mid,即mid = (0 + 5) / 2 = 2。
5. 比较中间元素arr与目标元素1的大小关系:
- arr等于目标元素1,但我们要找的是第一个1,所以继续在左半部分查找。更新end为mid-1,即end = 1。
6. 继续查找,计算新的中间索引mid,即mid = (0 + 1) / 2 = 0。
7. 比较中间元素arr与目标元素1的大小关系:
- arr小于目标元素1,所以目标元素在右半部分。更新start为mid+1,即start = 1。
8. 继续查找,计算新的中间索引mid,即mid = (1 + 1) / 2 = 1。
9. 比较中间元素arr与目标元素1的大小关系:
- arr等于目标元素1,但我们要找的是第一个1,所以继续在左半部分查找。更新end为mid-1,即end = 0。
10. 继续查找,计算新的中间索引mid,即mid = (1 + 0) / 2 = 0。
11. 比较中间元素arr与目标元素1的大小关系:
- arr小于目标元素1,所以目标元素在右半部分。更新start为mid+1,即start = 1。
12. 此时start大于end,查找结束。第一个1的位置为start,即索引1。
所以,第一个1的位置为索引1。