1、写一个字符串反转函数。
方法一:(利用递归实现)
public static String reverse1(String s) {
int length = s.length();
if (length = 0; i--)
reverse += array[i];
return reverse;
}
方法四:(利用StringBuffer的内置reverse方法)
public static String reverse4(String s) {
return new StringBuffer(s).reverse().toString();
}
方法五:(利用临时变量,交换两头数值)
public static String reverse5(String orig) {
char[] s = orig.toCharArray();
int n = s.length - 1;
int halfLength = n / 2;
for (int i = 0; i start && a[end] >= refvalue) {
end--;
}
// 将元素直接赋予给左边第一个元素,即pivotkey所在的位置
a[start] = a[end];
// 从序列的左边边开始往右遍历,直到找到大于基准值的元素
while (end > start && a[start] =n 为止,把这一过程写成一个主体框架函数 mergesort 。然后对于某确定的子表表长 L ,将 n 个记录分成若干组子表,两两归并,这里显然要循环若干次,把这一步写成一个函数 mergepass ,可由 mergesort 调用。最后再看每一组(一对)子表的归并,其原理是相同的,只是子表表长不同,换句话说,是子表的首记录号与尾记录号不同,把这个归并操作作为核心算法写成函数 merge ,由 mergepass 来调用。假设我们有一个没有排好序的序列,那么首先我们使用分割的办法将这个序列分割成一个一个已经排好序的子序列,然后再利用归并的方法将一个个的子序列合并成排序好的序列。分割和归并的过程可以看下面的图例。
![](https://img-blog.csdnimg.cn/20181128142411624.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxODIyNzQx,size_16,color_FFFFFF,t_70)
代码实现:
public static int[] sort(int[] a,int low,int high){
int mid = (low+high)/2;
if(low |