为您找到搜索结果:908个
冒泡排序-Bubble sort
冒泡排序算法的流程如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。functionbubbleSort(array){varlen=array.length,i,j;for(vari=0;i<len-1;i++){for(varj=i+1;j<len;j++){if(array[j]<array[i]){array[j]=[array[i],array[i]=array[j]][0];}}}returnarray;}functionbubbleSort(array){vari,j,temp,len=array.length;for(i=0;i<len-1;i++){for(j=i+1;j<len;j++){if(array[i]>array[j]){temp=array[i];array[i]=array[j];a...
php冒泡排序算法
functionff($arr){for($i=0;$i<count($arr);$i++){$isSort=false;for($j=0;$j<count($arr)-$i-1;$j++){if($arr[$j]<$arr[$j+1]){$isSort=true;$temp=$arr[$j];$arr[$j]=$arr[$j+1];$arr[$j+1]=$temp;}}if($isSort){break;}}return$arr;}$arr=array(3,1,2);var_dump(ff($arr));?> ...
交换排序---冒泡排序算法(Javascript版)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 functionsort(elements){for(vari=0;i<elements.length-1;i++){for(varj=0;j<elements.length-i-1;j++){if(elements[j]>elements[j+1]){varswap=elements[j];elements[j]=elements[j+1];elements[j+1]=swap;}}}}varelements=[3,1,5,7,2,4,9,6,10,8];console.log('before:'+elements);sort(elements);console.log('after:'+elements); 效率:时间复杂度:最好:O(n),最坏:O(n^2),平均:O(n^2)。...
Java 冒泡排序
冒泡排序(BubbleSort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡排序的过程图: [java]viewplaincopyprint?public class BubbleSort{ public static void main(String[] args){ &nb...
冒泡排序实现数组中的升序排序
/*****************遍历一次数组,实现查找到数组中的最大值***********************/vararr=[1,5,9,69,14,34,2,56,3,5,87,1];vartmp;for(vari=1;i<arr.length;i++){if(arr[i]>arr[i+1]){tmp=arr[i+1];arr[i+1]=arr[i];arr[i]=tmp;}}以上代码是找出了数组中的最大值并且将该值放到arr.length-1的位置分析:第1轮比较,要比较11次,循环条件为<arr.length-1,11其实就是数组中元素个数(12)-1; 第2次比较,要比较10次,循环条件为<arr.length-2,10其实就是数组中元素个数(12)-2; ... 第n次比较,要比较数组中元素个数-n次,循环条件为<arr.length-n;因此要进行排序则需要两个...
javascript学习5-练习之2冒泡排序算法
复习冒泡排序算法,同时自己也写了一个排序算法。实现效果:1.自己的算法思想:数组中数据取第一个为默认最小,依次和后面每个数据比较,只要有比其小的就交换直至找出最小的。然后将第二个数据与其后面所有数据比较,找出最小,依次重复2.冒泡排序算法思想:数据从最低端到最高端为a[n]......a[0]第一轮:将a[0]与a[1]比较,高者上,然后依次比较a[1]和a[2]....a[n-1]和a[n]每次将大的往上冒第二轮:将a[0]与a[1]比较,高者上,然后依次比较a[1]和a[2]...a[n-2]和a[n-1]每次大的往上冒,注意此时第一轮最大的已经排出来,故不需要将[n-1]与[n]相比较...第n轮:将a[0]与a[1]比较高者往上冒。然后a[1]与a[2]比较,大的往上冒。 此处前面已经排出来了n-1个最大的,一共n+1个数,故此时只有a[0]和a[1]两个没有比出最大的了。到第n轮,数据比较完成。具体代码如下:1.我自己的算法代码1//自己的排序算法2vars=[1,2,3,5,77,22,11,14,12,24];3//排序前4d...
冒泡排序法-----一点也不简单喔
原先只知道最初的冒泡版本,突然感觉好渣啊,哈哈不过,没事,学无止境,越学越不简单喔!!!设数组的长度为N:(1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。(3)N=N-1,如果N不为0就重复前面二步,否则排序完成。其实就是前后两个数比较,前面的大就和后面小的交换,直至大的跑到最后面,重复此操作,直至完成排序。以上就是冒泡排序的基本思想,按照这个定义很快就能写出代码:/***冒泡排序的第一种实现,没有任何优化*@parama*@paramn*/publicstaticvoidbubbleSort1(int[]a,intn){inti,j;for(i=0;i<n;i++){//表示n次排序过程。for(j=1;j<n-i;j++){if(a[j-1]>a[j]){//前面的数字大于后面的数字就交换//交换a[j-1]和a[j]inttemp;temp=a[j-1];a[j-1]=a[j];a[j]=temp;}}}}//end &n...
java 冒泡排序 day003
一、冒泡排序:利用冒泡排序对数组进行排序二、基本概念:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。三、实现思路:用二重循环实现,外循环变量设为i,内循环变量设为j。假如有n个数需要进行排序,则外循环重复n-1次,内循环依次重复n-1,n-2,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,n-1,对于每一个i,j的值依次为0,1,2,...n-i。设数组长度为N:1.比较相邻的前后二个数据,如果前面数据大...
选择法排序,冒泡排序,递归排序
#include<stdlib.h>//选择排序voidSelectSort(int*p,constintlength){if(p==NULL){return;}for(inti=0;i<length;i++){intk=i;//记录一轮找到最小值的下标for(intj=i+1;j<length;j++){if(p[k]>p[j]){k=j;}}inttemp=p[k];p[k]=p[i];p[i]=temp;}}//冒泡排序voidBubbleSort(int*p,constintlength){if(p==NULL){return;}for(inti=0;i<length;i++){for(intj=i+1;j<length;j++){if(p[i]>p[j]){inttemp=p[j];p[j]=p[i];p[i]=temp;}}}}//递归选择法排序intRecursiveSelectSort(int*p,intlength){if(p==NULL||1==length){return0;}intk=0;for(inti=0;i&...
c#中常见的算法(冒泡排序)
冒泡排序(BubbleSort):是一种直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法思路:1,比较相邻的元素。如果第一个比第二个大,就交换他们两个。2,对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3,针对所有的元素重复以上的步骤,除了最后一个。4,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。动图演示:运行速度:冒泡排序当输入的数据已经是正序时运行速度最快,当输入的数据是反序时速度最慢c#实现代码:1staticvoidMain(string[]args)2{3inttemp;4int[]num=newint[]{525,8,666,33,87,985,211,520,250};5for(inti=0;i<num.Length;i++)6{7for(intj=i+1;j<num.Length;j++)8...
python复习冒泡排序
冒泡排序:思路:先找到最大值放到最右边:#encoding=utf-8 a=[1,9,2,8,3,6,4]print"abeforechange:",aforiinrange(len(a)-1): ifa[i]>a[i+1]: a[i],a[i+1]=a[i+1],a[i]print"aafterchange:",a结果:D:>pythontest.pyabeforechange:[1,9,2,8,3,6,4]aafterchange:[1,2,8,3,6,4,9]找到最大值了,第二步找到次大值放到倒数第二个位置 #encoding=utf-8 a=[1,2,8,3,6,4,9] foriinrange(len(a)-1-1): ifa[i]>a[i+1]: a[i],a[i+1]=a[i...
python 冒泡排序的总结
冒泡排序:思路:35162第一次:找到这些书中最大的一个,并把它放到最后3、5找到大的数放到第二个位置1、55、1找到大的数放到第三个位置1、5、15、6找到大的数放到第四个位置2、6找到大的数放到第五个位置第五个位置就是最大的 #encoding=utf-8 a=[3,5,1,6,2] foriinrange(len(a)-1): ifa[i]>a[i+1]: a[i],a[i+1]=a[i+1],a[i]print("a:",a)D:estpytyon3>py-3a.pya:[3,1,5,2,6] 找到最大值了,现在开始找次大值 分析过程:35162第一次:找到这些数中最大的一个,并把它放最后。3、5找到大的数放到第二个位置5、1找到大的数放到第三个位置5、6找到大的数放到第四个位置2、6找到大的数放到第五个位置第五个位置就是最大的。 a,b=b,a temp=aa=bb=temp&nb...
js冒泡排序法-(从大到小排序,从小到大排序)
//冒泡排序法-从大到小排序letitemSort=[8,1,4,7,3,2,9];for(leti=0;i<itemSort.length;i++){for(lety=i;y>0;y--){if(itemSort[y]>itemSort[y-1]){[itemSort[y-1],itemSort[y]]=[itemSort[y],itemSort[y-1]]}}}//冒泡排序法-从小到大排序letitemSort=[8,1,4,7,3,2,9];for(leti=0;i<itemSort.length;i++){for(lety=i;y>0;y--){if(itemSort[y]<itemSort[y-1]){[itemSort[y-1],itemSort[y]]=[itemSort[y],itemSort[y-1]]}}}console.log(itemSort) ...
算法笔记_008:选择排序和冒泡排序【蛮力法】
/目录1问题描述2解决方案2.1选择排序原理简介2.2具体编码(选择排序)2.3冒泡排序原理简介 2.4具体编码(冒泡排序)给定一个可排序的n元素序列(例如,数字、字符和字符串),将它们按照非降序方式重新排列。选择排序开始的时候,我们从第一个元素开始扫描整个列表,找到它的最小元素,然后和第一个元素交换,将最小元素和第一个元素交换位置;然后,我们从第二个元素开始扫描剩下的n-1个元素,找到这n-1个元素中的最小元素,将最小元素和第二个元素交换位置;然后从第三个元素开始扫描...一般来说,就是从第i个元素开始扫描,找到第n-i+1个元素中的最小元素,将最小元素与第i个元素交换位置。这样,在进行n-1次遍历后,该列表就排好序了。packagecom.liuzhen.chapterThree;publicclassSelectionSort{publicstaticvoidgetSelectionSort(int[]a){intmin=0;//用于存放n-i序列中最小元素序号inttemp=0;//交换数组元素值的中间变量//打印输出未排序前数组序列System.out.print(...
c语言冒泡排序算法
案例一:#include<stdio.h>intmain(void){inta[5];printf("pleaseinputsortnumber:");intk;for(k=0;k<5;k++){scanf("%d",&a[k]);//int类型要加&符号取地址}//开始排序intn=sizeof(a)/sizeof(a[0]);printf("数组共%d个数",n);intw,j;//5个数要比较5-1=4次3》1for(w=0;w<n-1;w++){//printf("w=%d",w);循环4次for(j=0;j<n-1-w;j++){if(a[j]>a[j+1]){//大的放后面inttemp;temp=a[j];a[j]=a[j+1];//放最小的a[j+1]=temp;}}}//输出inti;printf("数组初始化为:");for(i=0;i<n;i++){printf("%d",a[i]);}printf("");return0;}案例二:#include<stdio.h>intmain(void){...