当前位置:首页 » 网页前端 » 前端数组冒泡
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

前端数组冒泡

发布时间: 2022-04-11 01:03:09

1. 用js做,要用到冒泡和数组,用户输入十个数,从小到大输出

js 锻炼这些没意义,数组有个sort方法,穿个比较函数就可以自动排序。俺会冒泡排序。js的功能别关注算法这块的。我个人建议!算法可以用c语言学。一般java、c++这种语言算法别人已经写好了。

2. 数组的冒泡排序

现在我们考虑这个双循环
我们发现,内层代码没有用到外层的变量i
因些外层只是控制次数也就是n-1次,因为,每一趟先最大的一个
n-1趟就完成了,
接着看内循环,每次比如j和j+1
但是比如上一趟排列已经排好一个就只用少循环一次就够了,
意味就内层要第一次循环n-1,第二次循环n-2以此类推
这个n-的数就可以与外层的i联系,只是少了循环次数而已
如果你写成你的也没什么不对,只是要比别人的程序多几次没用的循环而已

3. 二维数组冒泡,要求不转换一维数组进行冒泡,代码如下。

#include<stdio.h>

intmain(){
inta[4][4]={{3,9,2,1},{2,3,1,4},{5,4,8,0},{6,5,4,8}};
inti,j,k,temp;
printf("排序前: ");
for(i=0;i<4;++i){
for(j=0;j<4;++j){
printf("%3d",a[i][j]);
}
printf(" ");
}
printf(" ");
for(k=0;k<4;++k){
for(i=0;i<4-1;++i){
for(j=i+1;j<4;++j){
if(a[k][j]<a[k][i]){
temp=a[k][i];
a[k][i]=a[k][j];
a[k][j]=temp;
}
}
}
}
printf("排序后: ");
for(i=0;i<4;++i){
for(j=0;j<4;++j){
printf("%d",a[i][j]);
}
printf(" ");
}
printf(" ");
/*
printf("Pleaseinput20numbers: ");
for(p=0;p<2;p++)
for(i=0;i<10;i++)
scanf("%d",&a[p][i]);
for(p=0;p<2;p++)
for(i=1;i<20;i++)
for(j=0;j<20-i;j++)
if(a[p][j]>a[p][j+i]){
temp=a[p][j];
a[p][j]=a[p][j+i];
a[p][j+i]=temp;
}
//打印排序结果2组10个整数,它们分开排列,我想知道有没有什么思路是可以让
//a[0][9]和a[1][0]继续往上面进行冒泡,可以这个循环值第二个条件满足,等于是从a[1]的开始,从0到9还是排序,而不是一次性从a[0][0]到a[1][9]的排序。
for(i=0;i<2;i++)
for(j=0;j<10;j++)
printf("排序=%d ",a[i][j]);
*/
return0;
}

4. 数组的冒泡排序程序

把每行4端数据定义为一个结构体,读取数据后再进行排序。至于冒泡算法网络一下就有了。

5. 跪求!!定义数组冒泡法排序!!!!!内祥~!

以下是C/c++编写的代码,希望能帮你解决好问题

#include<stdio.h>

voidsort(floata[],intn)

{

floatk=0;

for(inti=0;i<n-1;i++)

{

for(intj=0;j<n-i-1;j++)

{

if(a[j]<a[j+1])

{

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

}

}

}

voidinsert(floata[])

{

printf("请输入一个成绩 ");

floati;

scanf("%f",&i);

intk;

for(k=9;k>0;k--)

{

if(a[k]<i)a[k+1]=a[k];

else

{

a[k+1]=i;

return;

}

}

if(k==0)

a[0]=i;

}

voidchangeturn(floata[],intn)

{

floatk;

for(inti=0;i<n/2;i++)

{

k=a[i];

a[i]=a[n-1-i];

a[n-1-i]=k;

}

}

voidmain()

{

printf("请输入10个成绩 ");

floata[11];

for(inti=0;i<10;i++)

{

scanf("%f",&a[i]);

}

printf("原始数据为: ");

for(i=0;i<10;i++)

{

printf("%.2f",a[i]);

}

printf("排序后为: ");

sort(a,10);

for(i=0;i<10;i++)

{

printf("%.2f",a[i]);

}

insert(a);

printf("插入一数据后为: ");

for(i=0;i<11;i++)

{

printf("%.2f",a[i]);

}

printf("倒叙后为: ");

changeturn(a,11);

for(i=0;i<11;i++)

{

printf("%.2f",a[i]);

}

printf(" ");

}

6. 关于PHP冒泡排序法。

前台输入部分我就不写了,管你是用字符串形式一起传到后台还是说先用js存储了再提交到后台,总之假设你前天都获得了一个一维数组,这里给一个从大到小,一个从小到大的写法:

从大到小:

<?php

/**

* 冒泡排序算法示例

*/

// 这里以一维数组做演示

$demo_array = array(23,15,43,25,54,2,6,82,11,5,21,32,65);

// 第一层for循环可以理解为从数组中键为0开始循环到最后一个

for ($i=0;$i<count($demo_array);$i++) {

// 第二层将从键为$i的地方循环到数组最后

for ($j=$i+1;$j<count($demo_array);$j++) {

// 比较数组中相邻两个值的大小

if ($demo_array[$i] < $demo_array[$j]) {

$tmp = $demo_array[$i]; // 这里的tmp是临时变量

$demo_array[$i] = $demo_array[$j]; // 第一次更换位置

$demo_array[$j] = $tmp; // 完成位置互换

}

}

}

// 打印结果集

echo '<pre>';

var_mp($demo_array);

echo '</pre>';

主要的代码已经给你写出来了,你自己把前端部分加上就行了

7. 对数组A进行插入 冒泡 选择排序

#include <iostream>
using namespace std;

void InsertSorting(int R[],int n , int type)
{
if( type == 1)
{
for(int i=1;i<n;i++)
{
int temp=R[i];
int j=i-1;
while((j>=0)&&(temp<R[j]))
{
R[j+1]=R[j];
j--;
}
R[j+1]=temp;
}
}
else
{
for(int i=1;i<n;i++)
{
int temp=R[i];
int j=i-1;
while((j>=0)&&(temp>R[j]))
{
R[j+1]=R[j];
j--;
}
R[j+1]=temp;
}
}
}

void BubbleSorting(int R[],int n, int type)
{
int i = 0;
if( type == 1)
{
for(int i=1; i<n; i++)
{
for(int j=0; j<n-i; j++)
{
if( R[j] > R[j+1] )
{
int temp ;
temp = R[j];
R[j] = R[j+1];
R[j+1] = temp;
}
}
}
}
else
{
for(int i=1; i<n; i++)
{
for(int j=0; j<n-i; j++)
{
if( R[j] < R[j+1] )
{
int temp ;
temp = R[j];
R[j] = R[j+1];
R[j+1] = temp;
}
}
}
}
}

void SelectSorting(int number[] , int n)
{
int i, j, m;

for(i = 0; i < n-1; i++)
{
m = i;
for(j = i+1; j < n; j++)
{
if(number[j] < number[m])
m = j;
if( i != m)
{
int temp ;
temp = number[i];
number[i] = number[m];
number[m] = temp;
}
}
}
}

const int MAX = 5;
int main()
{
int a[MAX] = { 10, 60, 2 , 50 , 6};

InsertSorting( a, MAX , 1 );

for(int i=0; i<MAX; i++)
{
cout<< a[i] <<endl;
}
cout<< endl;
BubbleSorting( a, MAX , 1 );

for( i=0; i<MAX; i++)
{
cout<< a[i] <<endl;
}
SelectSorting( a, MAX );
cout<< endl;
for( i=0; i<MAX; i++)
{
cout<< a[i] <<endl;
}
return 0;
}

8. javascript中的冒泡排序法

冒泡排序的原理是这样的,比方说有五个数字54321,要按从小到大排列;
首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来,变成43215
所以,一层循环的效果就是挑出最大的一个数字5,冒泡到最后面。但是还要挑出第二大,第三大的数字,等等。所以一层循环根本就不够用,必须再套一层才行。像这个例子,五个数字,起码要进行四轮循环才行。至于为什么要this.length-i,是因为第一次比较五个数字,第二个只要比较前四个就行了,第五个肯定是最大的了。。
var array = [5, 4, 3, 2, 1];
var temp = 0;
for (var i = 0; i < array.length; i++)
{
for (var j = 0; j < array.length - i; j++)
{
if (array[j] > array[j + 1])
{
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
console.log(array);

9. 如何实现一维浮点型数组的冒泡排序函数

//你调用错了,应该这样maopao(number,5);
voidmaopao(float*src,intlen)
{
floattem;
for(inti=0;i<len;i++)
{
for(intj=0;j<len-i-1;j++)
if(src[j]>src[j+1])
{
tem=src[j];
src[j]=src[j+1];
src[j+1]=tem;
}
}
}