`
yangyi
  • 浏览: 114575 次
  • 性别: 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  
不错啊,学习了~

相关推荐

    将数组逆序排列,C语言实现。

    在编程领域,数组逆序排列是一个常见的操作,尤其在数据处理和算法实现中。本话题主要探讨如何使用C语言来实现这一功能。C语言是一种强大的、低级别的编程语言,它提供了对内存的直接访问和控制,因此对于数组操作...

    数组逆序=全局内存版 VS 共享内存版

    全局内存版的数组逆序算法通常会将数组的所有元素分发给CUDA线程,每个线程负责一个或多个元素的读取和写入。由于全局内存的延迟,这种方法可能会导致较高的数据传输开销,尤其当数组很大时,性能可能受限于内存带宽...

    将一个数组逆序输出.pdf

    总之,C语言中的数组逆序输出涉及到基本的数组操作和循环控制。通过理解这个示例程序,你不仅可以学会如何在C语言中逆序输出数组,还能掌握计算数组大小的方法以及如何编写自定义函数处理数组。这将为你在后续的...

    将数组中的数逆序排放.pdf

    Java 中实现数组逆序同样可以采用双指针法,利用两个指针从数组两端向中间移动并交换元素。 ##### 示例代码 ```java public class ReverseArray { public static void main(String[] args) { int[] arr = {1, 2, ...

    逆序对(树状数组) C语言

    逆序对是排序数组中的一种概念,它是指在数组中,如果两个元素a和b的值满足a > b,但它们的下标i ,则称(a, b)为一个逆序对。逆序对的数量可以反映出数组的有序程度,是许多算法问题的基础,如快速排序、归并排序等...

    数组倒置经典算法

    经典的数组倒置算法通常采用两种方式: - **两指针法**:设置两个指针,一个指向数组起始位置,另一个指向末尾位置,然后交换这两个位置上的元素,并逐步向数组中心移动,直到两个指针相遇或交错。 - **循环法**:...

    字符串逆序算法示例 VC CUI程序

    - **字符数组逆序**:通过遍历字符串,从后向前复制字符到一个新的数组或原地修改,通常使用双指针技巧,一个指针从后向前移动,另一个指针从前向后移动,直到两个指针相遇。 - **std::string逆序**:`std::string...

    按逆序排列一维数组8个数

    - 数组逆序排列的概念:知道如何通过改变元素顺序达到数组逆序的效果。 - 循环控制结构:`for`循环的使用以及如何嵌套循环来完成特定任务。 在编程实践中,熟练掌握这些基础知识对于解决问题至关重要。同时,了解并...

    java简单实现数组中的逆序对

    归并排序是一种常用的排序算法,它将数组分成两个部分,然后将这两个部分分别排序,最后将排序结果合并。我们可以使用归并排序的思想来实现数组中的逆序对计数。在归并排序的过程中,我们可以统计出逆序对的数量。 ...

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

    本文将深入探讨五种常见的排序算法:堆排序、归并排序、选择排序、快速排序以及插入排序,并分析它们在不同数组状态下的时间复杂度。 1. **堆排序**: 堆排序是一种基于比较的排序算法,它利用了完全二叉树的特性...

    利用数组对数字进行逆序交换.zip

    在`main`函数中,我们创建了一个数组并调用这两个函数来演示逆序交换的过程。 这段代码的关键在于,我们只遍历到数组的中间位置,因为数组的后半部分会自动随着前半部分的交换而改变。这样可以有效地减少遍历次数,...

    java的两种冒泡排序算法

    ### Java中的两种冒泡排序算法 #### 知识点一:基本冒泡排序算法 冒泡排序是一种简单的排序算法,其基本思想是通过不断地比较相邻元素的大小,并根据需要进行交换,来达到排序的目的。 **代码实现:** ```java ...

    算法-求逆序对(信息学奥赛一本通-T1311).rar

    求解逆序对的核心算法有多种,这里主要介绍两种常见方法:归并排序法和线性时间复杂度的树状数组(也称为斐波那契堆)。 1. **归并排序法**: 归并排序在排序过程中可以自然地统计逆序对。在合并两个有序子数组时...

    java面试题之数组中的逆序对

    Java是一种流行的编程语言,在面试中经常会出现数组中的逆序对问题。今天我们来详细介绍一下这个问题的解决方案。 什么是数组中的逆序对? 在数组中,如果前一个数字大于后一个数字,则这两个数字组成一个逆序对。...

    剑指Offer 51.数组中的逆序对(csdn)————程序.pdf

    总结来说,解决“数组中的逆序对”问题,主要涉及归并排序算法的应用,通过递归分解数组,再合并子数组时计算逆序对,达到在排序的同时统计逆序对数量的目的。这种方法既保证了排序的稳定性,又有效解决了问题。

    算法分析与设计-实验1-统计逆序对

    归并排序是一种高效的排序算法,它采用分治策略,将数组分成两半,分别排序后再合并。利用归并排序的过程可以有效地统计逆序对的数量。在归并的过程中,若左侧数组的当前元素大于右侧数组的当前元素,则左侧剩余的...

    java实现数组中的逆序对

    我们可以使用两种方法来解决这个问题:暴力法和归并排序法。下面我们将详细介绍这两种方法: 暴力法 暴力法是最简单的方法,但是它的时间复杂度较高。我们可以使用两层循环来遍历数组,统计逆序对的数量。代码如下...

    java算法题 : 数组相关问题

    1. 冒泡排序:一种简单的排序算法,通过不断交换相邻的逆序元素来逐渐排序。 2. 插入排序:将元素插入到已排序的部分,保持有序状态。 3. 选择排序:每次找到未排序部分的最小(大)元素,放到已排序部分的末尾。 4....

    数组中的逆序对(通过归并过程统计)1

    逆序对是数组中一种特殊的数字关系,当一个数组中存在两个数字,使得前一个数字大于后一个数字时,我们称这两个数字构成了一个逆序对。逆序对问题在计算机科学,尤其是算法分析中有着重要的应用,因为它可以用来衡量...

    Swift实现快速排序算法的代码示例

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治策略,将大问题分解为小问题来解决,然后将小问题的结果合并得到大问题的解。在快速排序中,这个过程通过“分区”操作来实现...

Global site tag (gtag.js) - Google Analytics