当前位置: 首页 > 科技观察

JavaScript冒泡排序和选择排序

时间:2023-03-14 01:06:00 科技观察

算法和数据结构构成程序。数据结构用于实现数据的表示、存储和管理。算法利用数据完成一定的业务逻辑和操作,最终实现程序的功能。因此,算法在编程中的重要性不言而喻。许多复杂的算法都是借助于最基本的算法来实现的。本文主要选取经典排序算法中的冒泡排序和选择排序来简单描述和讲解JavaScript编程实现算法。算法描述算法是一种解决问题的策略机制,算法也是有限操作指令的集合。根据算法策略,输入满足要求的数据,最终得到求解问题的输出结果。冒泡算法和选择算法主要用于对无序的数字集合进行排序。算法说明如下:1.冒泡排序算法冒泡算法顾名思义,就是把待排序序列中的每一个元素都看成一个气泡,假设气泡的大小用元素。在这种情况下,最大的气泡(最大元素数)会先上升,这个过程称为冒泡。冒泡算法的关键是将未排序部分的最大元素按顺序移动,在序列的末尾从小到大形成一个已排序的有序序列。冒泡排序的示意图如下图所示:DiagramofBubbleSortAlgorithmDiagramofBubbleSortAlgorithm冒泡排序算法的示意图如上图所示,其中每一行代表一种排序,排序的目的是为了找到最大值,从待排序序列中取最大值,放入红色小球区,红色小球区表示已经排序的序列。从上图可以看出,每次排序冒泡的元素是(17,12,9,5,1)。最后的序列是(1,5,9,12,17)。2.选择排序算法选择排序是指从未排序的序列中找出最小值,取出并放入已排序的序列中,直到未排序序列中的元素个数为零。即所有元素都按照已经排好序的顺序排列。这个算法的关键是从未排序的序列中找到最轻(最小值)的元素,并将其放入已排序的序列中。选择排序算法的示意图如下图所示:Theschematicdiagramofselectionsort选择排序的示意图如上图所示。选择的关键是找到最小值并将其放入已排序的序列中。上图中未排序(待排序)集合为黄色部分,已排序部分为绿色背景部分。每行排序一次,排序的目的是找到最小的元素。从上图我们可以看出,选择的最小值是(1,5,9,12,17)。冒泡排序实现JavaScript冒泡排序主要是利用JavaScript数组数字对象实现待排序序列的存储,通过循环语句遍历数组,将待排序序列的第一个元素与后面的元素进行比较,如果是则进行交换大于后面的元素,所以经过一次遍历,最大的元素会跑到array数组的末尾。实现代码描述如下:vararr1=[9,1,4,13,7,8,20,23,15];varwlen1=arr1.length;varcount1=0;//记录总执行次数for(vari=0;iarr1[j+1]){vartemp;temp=arr1[j];arr1[j]=arr1[j+1];arr1[j+1]=temp;count1++;}}wlen1=wlen1-1;}选择排序实现根据算法描述需要用到两个JavaScript数组对象,一个就是要排序的序列为了存储数据,做了一个数组来做排序。从待排序的序列数组中找出最小值取出,存入排序后的数组中。arr数组是待排序的数组,res数组是排序后的数组。使用javaScript实现选择排序代码说明如下:vararr=[9,1,4,13,7,8,20,23,15];varwlen=arr.length;varcount=0;//记录的个数sortedelementsvarres=[];//最终的排序结果数组varminvalue=0;//思路是从未排序的序列中选择最小的元素放入排序的数组中for(vari=0;iarr[j]){minvalue=arr[j];vartemp;temp=arr[0];arr[0]=arr[j];arr[j]=temp;}count++;}arr.shift();res[i]=minvalue;}JavaScript实现基本冒泡和选择排序算法说明如上图,本例设计的测试用例为(9,1,4,13,7,8,20,23,15)。待排序的测试用例分别进行冒泡排序和选择排序。结果如下图所示。冒泡排序和选择测试结果