冒泡排序的写法(用指针数组表示一组学生的姓名,要求用冒泡排序法按升序对其实现排序,并输出排序的结果)

本文目录
用指针数组表示一组学生的姓名,要求用冒泡排序法按升序对其实现排序,并输出排序的结果
1、打开myeclipse工具,新建一个工程,并新建一个包,在该包下新建一个类。注意类名首字母必须大写,这是java代码的命名规范。
2、在该Demo1类下,写一个静态的select()方法。用来写选择排序的方法。参数为 需要排序的整数数组。
3、在该Demo1类下,写一个静态的maopao()方法。用来写冒泡排序的方法。参数为 需要排序的整数数组。
4、在主函数中调用maopao()方法。右键并点击 run as ,观察控制台上输出的结果,从小到大排序。
5、在主函数中调用select()方法。右键并点击 run as ,观察控制台上输出的结果,从小到大排序。
6、选择排序和冒泡排序的区别在于算法的实现不同。
为什么我写的冒泡排序无法移动0和负数如果全是正数可以排序!
问题出现在这里:
for(int j=0;j《arr.length-1;j++)
{for(int i=0;i《arr.length-j-1;i++)
{if(arr)
{temp=arr;
arr;
arr=temp;}
}
}
当第一次进入外边的for循环时,j=0,对于里边的for循环,无论i取什么值,比较的都是第一个和第二个。第二次进入外边的for循环时,无论i取什么值,比较的都是第二个和第三个。也就是说,你这种写法比较的是相邻的两个数。
冒泡排序正确的写法是:
for(int j=0;j《arr.length-1;j++)
{
for(int i=j+1;i《arr.length;i++)
{
if(arr)
{temp=arr;
arr;
arr=temp;}
}
}
c++冒泡排序的写法
这是定义了一个单精度直接交换排序的函数,这个用法与冒泡排序的经典写法不一样。它是每次比较当前元素后面的每一个元素,如有后面元素比当前元素小的,就把它交换到当前位置。这样,第一轮外循环结束后,就可以确保最小的元素已经交换到数组的最前面;第二轮外循环结束后,就可以确保第二小的元素已经交换到数组的第二个位置。……
float sort2(float *q,int n)
{ for(int i=0; i《n-1; i++) //这里只需进行到 i《n-1;
{ for(int j=i+1; j《n; j++) //这里j只需从i+1开始
{ if(q) //如后面的元素比当前元素更小,就交换到前面
{ float x;
x=q;
q;
q=x;
}
}
}
for (int x=0; x《n; x++) //输出数组所有元素,检查排序效果
cout《《q《《" ";
return 0;
}
最后一个for语句的作用,就是输出数组中所有的元素,可供检查排序完成的效果。
c# 冒泡排序的用法
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a标识,i的值依次为1,2,...,9,对于每一个i,
j的值依次为1,2,...10-i。
冒泡排序是稳定的。
产生
在许多程序设计中,我们需要将一个数列进行排序,以方便统计,常见的排序方法有冒泡排序,二叉树排序,选择排序等等。而冒泡排序一直由于其简洁的思想方法和比较高的效率而倍受青睐。
排序过程
设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮",如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40





