java实现几种常见排序算法

作者&投稿:右卞 (若有异议请与网页底部的电邮联系)

下面给你介绍四种常用排序算法:

1、冒泡排序

特点:效率低,实现简单 

思想(从小到大排):每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。这只是冒泡排序的一种,当然也可以从后往前排。

2、选择排序

特点:效率低,容易实现。 

思想:每一趟从待排序序列选择一个最小的元素放到已排好序序列的末尾,剩下的位待排序序列,重复上述步骤直到完成排序。

3、插入排序

特点:效率低,容易实现。 

思想:将数组分为两部分,将后部分元素逐一与前部分元素比较,如果当前元素array[i]小,就替换。找到合理位置插入array[i]

4、快速排序

特点:高效,时间复杂度为nlogn。 

采用分治法的思想:首先设置一个轴值pivot,然后以这个轴值为划分基准将待排序序列分成比pivot大和比pivot小的两部分,接下来对划分完的子序列进行快排直到子序列为一个元素为止。



java实现几种常见的排序算法~

冒泡public char[] changeNumber(char[] a) { for (int i = 0; i = a[j + 1]) { char k; k = a[j]; a[j] = a[j + 1]; a[j + 1] = k; } } } return a;}

1、冒泡排序
冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数为止,第一个数与第二个数比较,第二个数与第三个数比较,......,第n-j个与第n+1-j个比较,共比较n-1次。此时第n+1-j个位置上的数已经按要求排好,所以不参加以后的比较和交换操作。例如:第一轮排序:第一个数与第二个数进行比较,若不符合要求的顺序,则交换两者的位置,否则继续进行二个数与第三个数比较......。直到完成第n-1个数与第n个数的比较。此时第n个位置上的数已经按要求排好,它不参与以后的比较和交换操作;第二轮排序:第一个数与第二个数进行比较,......直到完成第n-2个数与第n-1个数的比较;......第n-1轮排序:第一个数与第二个数进行比较,若符合所要求的顺序,则结束冒泡法排序;若不符合要求的顺序,则交换两者的位置,然后结束冒泡法排序。
共n-1轮排序处理,第j轮进行n-j次比较和至多n-j次交换。
从以上排序过程可以看出,较大的数像气泡一样向上冒,而较小的数往下沉,故称冒泡法。

2、选择排序
选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的,然后第二个数与后面的每一个数依次比较,从而找出第二小的,然后第三个数与后面的

3、插入排序
插入排序的原理是对数组中的第i个元素,认为它前面的i-1个已经排序好,然后将它插入到前面的i-1个元素中。插入排序对少量元素的排序较为有效.

4、快速排序
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此大道整个数据变成有序序列。

⒐已知一个班有36个学生.用n数组存放学号,a数组存放物理 成绩,b数组存...
答:ava= suma/5;avb= sumb/5;printf("物理平均成绩是%f,数学平均成绩是%f\n",ava,avb);for(i = 0; i < N; i++){ if((a[i]<ava)&&(b[i]<avb))printf("学号为%d低于平均成绩,物理成绩是%f,数学成绩是%f\n",Sx[i],a[i],b[i]);} for (i = 0; i < N - 1; i++)...

javascript中的冒泡排序法
答:冒泡排序的原理是这样的,比方说有五个数字54321,要按从小到大排列;首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来...

flash怎么制作轮播图片素材flash怎么制作轮播图片素材视频
答:●1.冒泡排序、优化 ●2.选择排序 ●3.插入排序 ●4.归并排序 ●5.快速排序式 ●6.计数排序 ●7.桶排序 ●8.基数排序 4.链表(链表反转、链表是否有环) 5.树(高度、前序、中序、后序、广度优先算法、反转) 6.二叉树搜索算法 7.青蛙跳台阶问题-动态规划算法 8.React虚拟DOMDiff算法实现 抢首赞 已赞...

JAVA是什么意思?
答:2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。 3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。 4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由...

avatrans智能领航系统的智能泊车辅助包含哪些功能
答:Avatrans智能领航系统作为一套先进的驾驶辅助系统,其智能泊车辅助功能显著提升了驾驶者在泊车过程中的便捷性和安全性。这一系统通过集成在车辆上的传感器、摄像头和计算单元,实现了多种泊车辅助功能。首先,自动寻找停车位功能。在驾驶者启动泊车辅助系统后,车辆会自动扫描周围环境,通过算法分析识别出适合的...

java学习作为一名java初学者,如何快速学习j
答:JAVA快速入门的方法:1、时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。2、在学习的过程中,最好能够【了解Java】的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。3、在学习的...

学习java需要什么基础?
答:2、数组,排序算法,java常用API,类和对象,了解类与对象,熟悉常用API;3、面向对象特征,集合框架,熟悉面向对象三大特征,熟练使用集合框架;4、IO流,多线程;5、网络协议,线程运用。第二阶段:javaWEB核心课程阶段目标:1、熟练掌握数据库和MySQL核心技术;2、深入理解JDBC与DAO数据库操作;3、熟练...

标配即满配 阿维塔11单电机版更具吸引力
答:AVATRUST超感系统通过34颗智驾传感器特别是3颗半固体激光雷达的加持,架起4层感知防护体系。通过AI算法的训练实现了360°的感知能力,能识别复杂路况提升行车的安全性。同时智能硬件与软件算法的全栈高阶智驾系统与双电机版本无区别。AVATRUTH超算系统包括高性能智能驾驶计算平台、融合感知算法、VRU交互与博弈...

想在618买副蓝牙耳机,有没有性价比高的蓝牙耳机推荐?西圣Ava蓝牙...
答:CVC8.0降噪算法,精选钛振膜,高通aptX音频解码加持,保留更多音乐细节。续航持久,耳机单次可为您提供长达8H的音乐陪伴。 4.JBL LIVE FREE NC蓝牙耳机 JBL LIVE FREE NC蓝牙耳机采用主动数字降噪技术,满足用户的沉浸式需求的同时,在打游戏的时候也能对周边的环境音有所感知,不错过小伙伴的聊天。开麦打电话之类的也...

java的常用接口有哪些?
答:NullPointerException在所有的异常中是最受欢迎的,而Exception异常是在所有异常层次结构的顶部。4.java.util.ArrayList 一个实现数组的数据结构的类。这个类实现了List接口,是最受欢迎的Java集合类的成员,Arr ayList和Vector之间的差异是初学者常见的问题之一,它也经常在java面试中被问到。5.ava.util....