社区
Java SE
帖子详情
用冒泡排序法对给定数组元素从大到小次序排序并输出排序的结果.请帮忙编写一下程序,给分!!!
sexguns
2004-05-12 04:59:46
用冒泡排序法对给定数组元素从大到小次序排序并输出排序的结果.
请各位百忙之余帮一下小忙,谢谢先!!!
...全文
5191
6
打赏
收藏
用冒泡排序法对给定数组元素从大到小次序排序并输出排序的结果.请帮忙编写一下程序,给分!!!
用冒泡排序法对给定数组元素从大到小次序排序并输出排序的结果. 请各位百忙之余帮一下小忙,谢谢先!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sylmoon
2004-05-14
打赏
举报
回复
學習JAVA應該用對象传递来编程序了,但把数组做为对象传递我还不熟悉
不过java是传值调用,和c传引用不一样
sylmoon
2004-05-14
打赏
举报
回复
我原先寫的冒泡排序的編程日記:
先来看看最基本的数组排序——冒泡排序。比如我们有一个数组为:2,57,29,89,
42,34,16,1。通过冒泡——大的沉下去,小的浮上来的原理,分别比较相邻的值,
大的往后排。如果相邻的两个值是升序排列的,就保持原样,如果是降序排列的,就
交换它们的值:
start : a[0]2, a[1]57, a[2]29, a[3]89, a[4]42, a[5]34, a[6]16,a[7]1
1 times:2, 29, 57, 42, 34, 16, 1, 89
2 times: 2, 29, 42, 34, 16, 1, 57, 89
3 times: 2, 29, 34, 16, 1, 42, 57, 89
4 times: 2, 29, 16, 1, 34, 42, 57, 89
5 times: 2, 16, 1, 29, 34, 42, 57, 89
6 times: 2, 1, 16, 29, 34, 42, 57, 89
7 times: 1, 2, 16, 29, 34, 42, 57, 89
我们可以用两个循环来控制排序,一个控制趟数,一个控制每趟的排序。
控制趟数是 1 to 7
控制每趟的比较次数也是1 to 7
推广一下:有n个项的数组,如果要实行冒泡排序,最多排n-1次,每次比较n-1次。
经过我们自己的思考+书上的提示,写下了冒泡排序的源程序:
#include <stdio.h>
#include <conio.h>
#define SIZE 8
main()
{
int a[SIZE]={2,57,29,89,42,34,16,1};
int i, pass, hold;
clrscr();
for(i=0;i<=SIZE-1;i++)
printf("%4d", a[i]);
printf("\n");
for(pass=1;pass<=SIZE-1;pass++) /*比较趟数*/
for(i=0;i<=(SIZE-1-1);i++)/*比较一趟*/
if(a[i]>a[i+1]){
hold=a[i];
a[i]=a[i+1];
a[i+1]=hold;}
for(i=0;i<=SIZE-1;i++)
printf("%4d",a[i]);
return 0;
}
根据我们找的关系,比较一趟的时候不应该是SIZE-1吗?!这是考虑到的数组下标的问
题,我也没那么弱智把SIZE-2写成SIZE-1-1,是为了增加我们对冒泡排序的理解!比如
,当i=6的时候,不是比较了a[6]和a[7]么?
再想想,不这么写,非要写SIZE-1,可以么?我想也差不多吧,但那样很麻烦,就是如
何处理数组下标呢?其实我们开始考虑问题的时候就该考虑如何进行比较,我们刚才过
重研究了趟数的问题了!
运行结果如:
2 57 29 89 42 34 16 1
1 2 16 29 34 42 57 89
完成了我们排序的目的。
原先学习过一次冒泡排序了,不过那回没有真正地理解,这回是比上次理解得深了,我
们看别人得程序不要死记硬背,首先要理解,要不是没有用处的,哪怕象这次一样一行
行分析过程呢。
7:06 02-6-4
sylmoon
2004-05-14
打赏
举报
回复
对于冒泡排序,我基本研究过一段时间,那是在学c的时候,但现在也是能很快写出来.
最基本的冒泡排序:
public class BubbleSort
{
public static void main(String[] args)
{
int [] a={12, 8, 9, 6, 10, 3};
int temp=0;
for( int i=0; i<= a.length-1; i++)
{
System.out.print("\t"+a[i]);
}
System.out.println();
//Bubble(a[i]);
for(int i=0; i<= a.length-1; i++){
for( int j=0; j>=a.length-2; j-- )//最基本的冒泡排序,注意这里!
if (a[j]>=a[j+1]){
temp=a [j];
a[j]=a[j+1];
a[j+1]=temp;
}}
for( int i=0; i<= a.length-1; i++)
{
System.out.print("\t"+a[i]);
}
}
}
// Programing with
public class BubbleSort
{
public static void main(String[] args)
{
int [] a={12, 8, 9, 6, 10, 3};
int temp=0;
for( int i=0; i<= a.length-1; i++)
{
System.out.print("\t"+a[i]);
}
System.out.println();
//Bubble(a[i]);
for(int i=0; i<= a.length-1; i++){
for( int j=a.length-2; j>=i; j-- )//改进了这里
if (a[j]>=a[j+1]){
temp=a [j];
a[j]=a[j+1];
a[j+1]=temp;
}}
for( int i=0; i<= a.length-1; i++)
{
System.out.print("\t"+a[i]);
}
}
}
swankiecsdn
2004-05-13
打赏
举报
回复
int a[]=new int[5];
int i=0,j=0,t=0,ti=0;
for( ;i<5;i++){
t=a[i];
for (j=i+1;j<5;j++){
if (a[j]>t){
t=a[j];
ti=j;
}
}
a[i]<-->a[ti];
}
oxv
2004-05-12
打赏
举报
回复
通过设置一个临时参数和循环几次就可以了
Acylas
2004-05-12
打赏
举报
回复
jdk 的demo里面有,demo/applet/SortDemo
使用
冒泡
排序
法
排列数组中的元素(从小到大)
用
冒泡
排序
法
使数组中的元素按照从小到大的
次序
排列
冒泡
排序
(用起泡法(冒泡
排序
)对n个整数
排序
并
输出
从小到大
排序
后的结果。)
冒泡
排序
C语言:使用冒泡算法将数组中的数据
从大到
小进行
排序
/*使用冒泡算法将数组中的数据
从大到
小进行
排序
*/ #include<stdio.h> #define N 5 int main() { int a[N]; int i,j,t; printf("
请
输入%d个整数:\n",N); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) for(j...
冒泡
排序
(升序和降序)的python代码实现
冒泡
排序
交换
排序
的基本思想是:两两比较待
排序
记录的关键字,发现两个记录的
次序
相反时即进行交换,直到没有反序的记录为止。 应用交换
排序
基本思想的主要
排序
方法有:冒泡
排序
和快速
排序
。 冒泡
排序
的编程思想有两种,浮上去和沉下来。 沉下来:从前往后进行两两比较,将气泡较重的置到下方。 def bubblesortDown(date): length = len(date)
Java
编写
函数数组(键盘输入n个数) 冒泡
排序
Java
编写
函数数组(键盘输入n个数) 冒泡
排序
//键盘输入n个数,冒泡
排序
大到小, import java.util.Scanner; public class Maopao{ public static void main(String [] args){ Scanner read = new Scanner(System.in); //创建Sc
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章