`
yangyi
  • 浏览: 112824 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

两种数组逆序算法

阅读更多
commons-lang里StringUtils的实现
        int i = 0;
        int j = array.length - 1;
        while (j > i) {
            swap(array, i, j);
            j--;
            i++;
        }

JDK中AbstractStringBuilder的实现
		int n = array.length - 1;
		for (int k = (n-1) >> 1; k >= 0; --k) {
           swap(array, k, n-k);
		}
分享到:
评论
6 楼 wuzaizhong283 2011-04-29  
省掉了一个i++的操作
5 楼 wuzaizhong283 2011-04-29  
楼主的意思是: jdk中的实现省掉了一个变量吧。
4 楼 yangyi 2011-04-29  
dsjt 写道
songjipo 写道
直接用Arrays.sort 行吗?

同样看错,以为是降序。
他要的是 reverse,不是sort,


文章: 280
积分: 260
怎么这种级别的也发新手帖?


简单是一种美,何必长篇大论呢,复杂问题都是简单问题所组成的

第一段是commons-lang里StringUtils的实现
第二段是JDK中AbstractStringBuilder的实现
3 楼 dsjt 2011-04-29  
songjipo 写道
直接用Arrays.sort 行吗?

同样看错,以为是降序。
他要的是 reverse,不是sort,


文章: 280
积分: 260
怎么这种级别的也发新手帖?
2 楼 songjipo 2011-04-29  
直接用Arrays.sort 行吗?
1 楼 njklc 2011-04-28  
不错啊,学习了~

相关推荐

    排序算法在不同数组状态下时间复杂度的比较

    堆排序 归并排序 选择排序 快速排序 插入排序 可选择数组初始状态(随机、正序、逆序) 通过输出的时间可以更好地比较在不同数组状态下 各种排序算法的时间复杂度

    Python 版冒泡排序算法源代码

    冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字...

    FFT快速整序算法的对比、改进及实现 (2009年)

    首先, 将顺序号分成组号和组员两部分, 采用两个数组存储各组号及组员的数, 以(0,2,1,3)为初始逆序表, 利用已知组员与组号对应的逆序号的大小关系, 求出任意更高阶的逆序表。其次, 在数据交换时, 避免了常规整序中...

    leetcode答案-algorithm_questions_and_codes:自己练习的一些算法题

    说明:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 代码: leetcode002.两数相加 说明:定两个非空链表来表示两个非负整数。...

    algorithms:算法和数据结构的集合

    因此,我们可以理解,即使向量是有序的或逆序的,也没有更好的情况,算法的两个循环(外部和内部)将被执行。 该算法的复杂度将始终为O(n ^ 2)。 插入排序 插入排序或按插入排序是一种排序算法,在给定的结构...

    数据结构之冒泡排序算法(图解+分析+代码调优)

    冒泡排序是一种比较简单的排序算法,其基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,可以形象的理解为像水底下的气泡...

    leetcode答案-algorithm:算法

    target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9...

    leetcode第321题-algorithms4j:算法4j

    但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 2. 两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们...

    leetcode算法题主函数如何写-leetcode-top_100:leetcode-top_100

    leetcode算法题主函数如何写 leetcode-top_100 1. 两数之和 问题:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一...

    知名公司数据结构笔试题及答案

    用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。   10.给两个变量,如何找出一个带环单链表中是什么地方出现环的? 11.哈希表和数组的定义,区别,优缺点。 12.链接表和数组之间的区别是...

    传智播客扫地僧视频讲义源码

    06_数组指针类型和定义数组指针变量的3种方法 07_多维数组名本质剖析_传智扫地僧 08_多维数组的【】和多级指针星号转化推演 09_多维数组做函数参数技术推演和退化原因抛出 10_多维数组做函数参数退化总结_ 11_指针...

    leetcode答案-LeetCode:力码

    leetcode 答案 每个文件都用C语言实现了一个LeetCode上的算法题,序号就是题号,都是可以编译跑通的(C语言基础不好,有些内容...请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 26.re

    数据结构(C++)有关练习题

    <br>实验二 单链表结构及计算 实验目的: 通过实验掌握下列知识: 1、熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2、继续熟悉VC编程、编译和调试环境; 内容及步骤:...

    《数据结构 1800题》

    6.数据结构中评价算法的两个重要指标是(时间复杂度和空间复杂度) 【北京理工大学 2001 七、1(2分)】 7. 数据结构是研讨数据的_(1)物理结构_和_(2)逻辑结构 _,以及它们之间的相互关系,并对与这种结构定义...

    0-1背包问题

    如果将v的循环顺序从上面的逆序改成顺序的话,那么则成了f[i][v]由f[i][v-c[i]]推知,与本题意不符,但它却是另一个重要的背包问题P02最简捷的解决方案,故学习只用一维数组解01背包问题是十分必要的。

    世界500强面试题.pdf

    1.2.6. Top K 算法详细解析---百度面试 ......................................................... 29 1.2.7. 翻转句子中单词的顺序....................................................................... 31 ...

    C/C++面试题目及解答.doc

    用C/C++语言写一函数完成该算法,给出复杂度 <br>6.对序列1、1、2、3、5、8、13。。。。 是Fab..数列 2、3、5、13...是Fab..质数数列,因为他们与自己前面的Fab...数列都互质 给出k,返回第k小的...

Global site tag (gtag.js) - Google Analytics