文档章节

发现一个比冒泡排序法好的算法

一转身的vv
 一转身的vv
发布于 2017/04/01 13:36
字数 244
阅读 22
收藏 3
//冒泡排序   
 for (int i =0; i<length-1; i++) {
        for (int j =i+1; j<length; j++) {
            if (arr[i] < arr[j]) {
                int flag = arr[i];
                arr[i]= arr[j];
                arr[j]=flag;
            }
        }
    }
//自己想到的
	for (int i =0; i<length-1; i+=2) {

        if (arr[i] < arr[i+1]) {
            
            int flag = arr[i];
            
            arr[i]= arr[i+1];
            
            arr[i+1]=flag;
        }
        for (int j =i+2; j<length; j++) {
            
            if (arr[i+1] < arr[j]) {
                
                int flag = arr[i+1];
                
                arr[i+1]= arr[j];
                
                arr[j]=flag;
                
                if (arr[i] < arr[i+1]) {
                    
                    int flag = arr[i];
                    
                    arr[i]= arr[i+1];
                    
                    arr[i+1]=flag;
                }
            }
        }
    }

冒泡计算次数:(n-1)+(n-2)+...+1= n*(n-1)/2;

自己:

最少计算:
(1+n-2)+(1+n-4)+...+(1+0) = n/2+(n-2+n-4+...+0)
                   = n/2+(n-2+0)*(n/2)/2
                   = n/2+(n-2)*n/4
                   = n*n/4
最大计算个数:
(1+(n-2)*2)+(1+(n-4)*2)+...+(1+2*2)+(1+0)
                    =n/2+2(n-2+n-4+..+0)
                    =n/2 + (n-2)*n/2
                    = (n-1)n/2

比冒泡少计算次数:0----->(n*n-2*n)/2

不知道谁看到类似的算法

© 著作权归作者所有

一转身的vv
粉丝 1
博文 14
码字总数 4192
作品 0
朝阳
程序员
私信 提问
排序——冒泡排序法

一、冒泡排序法概述 冒泡排序法的基本思想是:对待排序记录关键字从后往前(逆序)进行多遍扫描,当发现相邻两个关键字的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,关键字...

翼动动空
2016/06/05
1K
0
PHP 四种基本排序算法的代码实现(2)

许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒...

iceman_os
2015/03/20
90
0
php四种基础算法:冒泡,选择,插入和快速排序法

许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西 。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算...

PHP86
2013/12/21
222
0
PHP实现四种基本排序算法

许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒...

京牛教育科技
2016/08/30
22
0
php四种基础算法:冒泡,选择,插入和快速排序法

许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西 。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算...

带刺的玫瑰
2014/01/06
14
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部