文档章节

冒泡循环

o
 osc_x4h57ch8
发布于 2018/04/24 15:52
字数 496
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

假如有几个数字int score[] = {67, 69, 75, 88};  按照从大到小排序。

有2种思路,第一种,score[j] 和 score[j+1] 比较 如果 前者比后者小,把前者和后者调换顺序,两两调换后一轮下来 最小的会被排到最后去。每一轮j都从0开始,当i轮排序,就有最后面的i个数字因为他是最小的,所以后面的每轮都不用理他了,也就是 score.length-1-i  往后的数不用管了,如上,第一轮有4个数字 i为0 ,那么score.length-1-i  为3,也就是下标是3以后的可以不用管,3往后没有数字,所以第一轮所有的数字都要参加比较,第二轮I=1  score.length-1-i  为2 也就是说 下标2后面的 下标为3的数字不用比了,因为两两比较厚,67会到 score[3],实现代码如下:

  1. for(int i =0;i < score.length - 1;i++)  
  2.         {  
  3.             for(int j = 0;j <  score.length - 1-i;j++)// j开始等于0,  
  4.             {  
  5.                 if(score[j] < score[j+1])  
  6.                 {  
  7.                     int temp = score[j];  
  8.                     score[j] = score[j+1];  
  9.                     score[j+1] = temp;  
  10.                 }  
  11.             }  
  12.         }  


第二种思路,用88 和 75 比较,在和69 比较 在和 67 比较,发现88是最大的,吧他排到第一位(index=0的位置),然后i=1,也就是第二轮,就不用看下标为0的88了因为他是老大,然后接着比较。;

[java] view plain copy
  1. for(int i =0;i < score.length - 1;i++)  
  2.         {  
  3.             for(int j = (score.length - 2);j >= i;j--)  
  4.             {  
  5.                 if(score[j] < score[j+1])  
  6.                 {  
  7.                     int temp = score[j];  
  8.                     score[j] = score[j+1];  
  9.                     score[j+1] = temp;  
  10.                 }  
  11.             }  
  12.         }  


说明下j为啥=

[java] view plain copy
  1. (score.length - 2)  

因为length=4,我最多能让下标2和下标3的数字比较(j+1最大等于3),也就是4-2=2  j最大=2,2和2+1比较  然后1和2比较,然后 0和1 比较。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shuaizai88/article/details/73250615

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
冒泡排序

第三周 冒泡排序 算法: 总结: 代码: 冒泡排序 见名如闻其意,就像鱼儿吐泡泡,将大的数向上(后)冒泡泡。 算法: 将泡泡向后冒的这个过程是一个重复的过程,必然用到for,所以这个经典算...

leno_scholar
04/30
0
0
图解冒泡排序算法

图解冒泡排序 冒泡排序是常用排序算法中最简单的一种,可能很多同学看到这个标题之后就会很不屑的说,冒泡排序谁不会吖,你还在这里献丑!我就献丑了,怎么了!我骄傲了吗?还不会的同学好好...

osc_5yejhemb
2019/09/12
2
0
关于冒泡排序

[代码]南湖船老大版PHP冒泡 <?<?php$array = array(7,1,2,8,4,5,6,0,22,9);$len=count($array);for ($i=0;$i<$len;$i++) { for ($j=$len-1;$j>$i;$j--) { if ($array[$j-1] > $array[$j]) {......

说谎的少年
2014/10/21
108
0
Java基础系列--基础排序算法

原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9082138.html 一、概述   基础排序算法包括:桶排序、冒泡排序、选择排序、插入排序等 二、桶排序 2.1 算法介...

osc_a7rsiqz6
2018/05/24
1
0
三个基本排序算法执行效率比较(冒泡排序,选择排序和插入排序)

1、冒泡算法。 冒泡算法是最基础的一个排序算法,每次使用第一个值和身后相邻的值进行比较,如果是升序将大数向左边交换,降序则向右边交换。最终将大数移动到一边,最终排成一个序列: publ...

风之源
2018/08/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试必问之mysql基础

mysql存储引擎 如何选择mysql存储引擎 先得了解下各个存储引擎区别 功能 MylSAM MEMORY InnoDB Archive 功能 MylSAM MEMORY InnoDB Archive 存储限制 256TB RAM 64TB None 支持事务 No No Ye...

lipengxs
32分钟前
16
0
错误:将标头发送到客户端后无法设置标头 - Error: Can't set headers after they are sent to the client

问题: I'm fairly new to Node.js and I am having some issues. 我对Node.js相当陌生,遇到了一些问题。 I am using Node.js 4.10 and Express 2.4.3. 我正在使用Node.js 4.10和Express 2......

法国红酒甜
43分钟前
18
0
Spring中事务不生效的几种情况

数据库引擎不支持事务。 没有被Spring管理。 方法不是public的。 自身调用问题。 数据源没有配置事务管理器。 不支持事务。 异常被吃了。 异常类型错误。 事务失效类型: 数据库引擎不支持事...

九分石人
今天
31
0
从Linux内核理解JAVA的NIO

前言 IO 可以简单分为磁盘 IO 和 网络 IO ,磁盘 IO 相对于网络 IO 速度会快一点,本文主要介绍 磁盘 IO ,网络 IO 下周写。 JAVA 对 NIO 抽象为 Channel , Channel 又可以分为 FileChannel ...

万古云霄
今天
22
0
Material Design用在c#的wpf app中

官网:http://materialdesigninxaml.net/ 样式丰富 做网站和手机不粗 个人觉得不适合用在.net framework中,在.net core中应该大有作为。...

齐勇cn
今天
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部