这篇文章主要介绍了Java冒泡选择插入希尔排序的原理是什么与怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java冒泡选择插入希尔排序的原理是什么与怎么实现文章都会有所收获,下面我们一起来看看吧。冒泡排序是重复地走访要排序的元素,依次比较两个相邻的元素,如果它们的顺序与自己规定的不符合,则把两个元素的位置交换。走访元素重复地进行,直到没有相邻元素需要交换为止,完成整个排序过程。▶ 算法原理1、比较相邻元素,如果前一个元素大于后一个元素,则交换。2、依次向后对每一对相邻元素做同样的工作,直到队列末尾,第一轮过后最大的元素就位于最后一个元素位置了。3、重复以上步骤,直到最后一个元素位置的前一位为止(因为最后一位已经排了)。4、持续每次对越来越少的元素重复上面步骤,直到第一个元素和第二个元素交换后顺序为从大到小或从小到大,排序结束。冒泡排序实际上就是两个数两个数的比较,每循环一次将最大或最小的数放在最后,剩下的就继续两两比较。首先第一次确定第一个数为最小的,然后利用for循环,将第一个数后的数据遍历一遍,找是否还有比第一个数更小的,记录下来,遍历完毕后将第一个数与最小的数进行交换。然后又确定第二数,找第二个数以后的数,是否还有比第二免费云主机域名个数更小的,找到后与第二个数又进行交换,重复上面即可。以后的每次循环都是按照这种方式,直到最后两个数排完,数据就是有序的了。前面我们介绍的选择排序,找到最小的就与前面的进行交换。而插入排序,就是将确定的数的后一位插入到前面即可。图形介绍:开始,id指向第一个数,mid指向第二个数,然后两个数进行比较。此时,1 比 3 小,但是3前面没数据了,于是将1插入到3的前面,注意这里是插入,不是交换。下一步 3 比 5 小,于是不用插入。经过三次比较,确定了 2 的位置在 1 和 3 直接,直接将 2 插入。又经过四次比较,找到 0 的位置 在 1 的前面,于是将 0 插入到 1 的前面即可。首先将数组分为两组,3、2、0 为一组,1、5为一组,g = arr.length / 2。2 和 3 进行判断,3 比 2 大 ,然后进行交换位置,交换后 j = j- g
不需要交换, 然后 j = j- g
3 比 0 大 ,需要交换。然后 j = j – g > 0 , j = j – g交换后 j = j – g arr.length 了,第一轮结束第二轮:在arr.length / 2的基础上再除2 , 于是 g = 1 ;然后两两交换,交换后 进行j = j – g > 0 的判断 ,不成立则 i++, j = i – g ,成立则 j = j – g ,就这样一直循环下去。第二轮后的结果:第二轮结束后,g / 2 = 0 结果不大于 0,所以排序结束移位排序的思想与前面的交换排序一样的,只是在交换数的方式上有变化。交换排序数的交换方式来自冒泡排序,而移位排序数的交换方式来自插入排序。关于“Java冒泡选择插入希尔排序的原理是什么与怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java冒泡选择插入希尔排序的原理是什么与怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。
这篇文章主要介绍“C语言指针函数和函数指针怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言指针函数和函数指针怎么使用”文章能帮助大家解决问题。一、指针函数当一个函数声明其返回值为一个指针时,实际上就是返回一…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。