⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arrays.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	    swap(x, a, b);    }    /**     * Returns the index of the median of the three indexed shorts.     */    private static int med3(short x[], int a, int b, int c) {	return (x[a] < x[b] ?		(x[b] < x[c] ? b : x[a] < x[c] ? c : a) :		(x[b] > x[c] ? b : x[a] > x[c] ? c : a));    }    /**     * Sorts the specified sub-array of chars into ascending order.     */    private static void sort1(char x[], int off, int len) {	// Insertion sort on smallest arrays	if (len < 7) {	    for (int i=off; i<len+off; i++)		for (int j=i; j>off && x[j-1]>x[j]; j--)		    swap(x, j, j-1);	    return;	}	// Choose a partition element, v	int m = off + (len >> 1);       // Small arrays, middle element	if (len > 7) {	    int l = off;	    int n = off + len - 1;	    if (len > 40) {        // Big arrays, pseudomedian of 9		int s = len/8;		l = med3(x, l,     l+s, l+2*s);		m = med3(x, m-s,   m,   m+s);		n = med3(x, n-2*s, n-s, n);	    }	    m = med3(x, l, m, n); // Mid-size, med of 3	}	char v = x[m];	// Establish Invariant: v* (<v)* (>v)* v*	int a = off, b = a, c = off + len - 1, d = c;	while(true) {	    while (b <= c && x[b] <= v) {		if (x[b] == v)		    swap(x, a++, b);		b++;	    }	    while (c >= b && x[c] >= v) {		if (x[c] == v)		    swap(x, c, d--);		c--;	    }	    if (b > c)		break;	    swap(x, b++, c--);	}	// Swap partition elements back to middle	int s, n = off + len;	s = Math.min(a-off, b-a  );  vecswap(x, off, b-s, s);	s = Math.min(d-c,   n-d-1);  vecswap(x, b,   n-s, s);	// Recursively sort non-partition-elements	if ((s = b-a) > 1)	    sort1(x, off, s);	if ((s = d-c) > 1)	    sort1(x, n-s, s);    }    /**     * Swaps x[a] with x[b].     */    private static void swap(char x[], int a, int b) {	char t = x[a];	x[a] = x[b];	x[b] = t;    }    /**     * Swaps x[a .. (a+n-1)] with x[b .. (b+n-1)].     */    private static void vecswap(char x[], int a, int b, int n) {	for (int i=0; i<n; i++, a++, b++)	    swap(x, a, b);    }    /**     * Returns the index of the median of the three indexed chars.     */    private static int med3(char x[], int a, int b, int c) {	return (x[a] < x[b] ?		(x[b] < x[c] ? b : x[a] < x[c] ? c : a) :		(x[b] > x[c] ? b : x[a] > x[c] ? c : a));    }    /**     * Sorts the specified sub-array of bytes into ascending order.     */    private static void sort1(byte x[], int off, int len) {	// Insertion sort on smallest arrays	if (len < 7) {	    for (int i=off; i<len+off; i++)		for (int j=i; j>off && x[j-1]>x[j]; j--)		    swap(x, j, j-1);	    return;	}	// Choose a partition element, v	int m = off + (len >> 1);       // Small arrays, middle element	if (len > 7) {	    int l = off;	    int n = off + len - 1;	    if (len > 40) {        // Big arrays, pseudomedian of 9		int s = len/8;		l = med3(x, l,     l+s, l+2*s);		m = med3(x, m-s,   m,   m+s);		n = med3(x, n-2*s, n-s, n);	    }	    m = med3(x, l, m, n); // Mid-size, med of 3	}	byte v = x[m];	// Establish Invariant: v* (<v)* (>v)* v*	int a = off, b = a, c = off + len - 1, d = c;	while(true) {	    while (b <= c && x[b] <= v) {		if (x[b] == v)		    swap(x, a++, b);		b++;	    }	    while (c >= b && x[c] >= v) {		if (x[c] == v)		    swap(x, c, d--);		c--;	    }	    if (b > c)		break;	    swap(x, b++, c--);	}	// Swap partition elements back to middle	int s, n = off + len;	s = Math.min(a-off, b-a  );  vecswap(x, off, b-s, s);	s = Math.min(d-c,   n-d-1);  vecswap(x, b,   n-s, s);	// Recursively sort non-partition-elements	if ((s = b-a) > 1)	    sort1(x, off, s);	if ((s = d-c) > 1)	    sort1(x, n-s, s);    }    /**     * Swaps x[a] with x[b].     */    private static void swap(byte x[], int a, int b) {	byte t = x[a];	x[a] = x[b];	x[b] = t;    }    /**     * Swaps x[a .. (a+n-1)] with x[b .. (b+n-1)].     */    private static void vecswap(byte x[], int a, int b, int n) {	for (int i=0; i<n; i++, a++, b++)	    swap(x, a, b);    }    /**     * Returns the index of the median of the three indexed bytes.     */    private static int med3(byte x[], int a, int b, int c) {	return (x[a] < x[b] ?		(x[b] < x[c] ? b : x[a] < x[c] ? c : a) :		(x[b] > x[c] ? b : x[a] > x[c] ? c : a));    }    /**     * Sorts the specified sub-array of doubles into ascending order.     */    private static void sort1(double x[], int off, int len) {	// Insertion sort on smallest arrays	if (len < 7) {	    for (int i=off; i<len+off; i++)		for (int j=i; j>off && x[j-1]>x[j]; j--)		    swap(x, j, j-1);	    return;	}	// Choose a partition element, v	int m = off + (len >> 1);       // Small arrays, middle element	if (len > 7) {	    int l = off;	    int n = off + len - 1;	    if (len > 40) {        // Big arrays, pseudomedian of 9		int s = len/8;		l = med3(x, l,     l+s, l+2*s);		m = med3(x, m-s,   m,   m+s);		n = med3(x, n-2*s, n-s, n);	    }	    m = med3(x, l, m, n); // Mid-size, med of 3	}	double v = x[m];	// Establish Invariant: v* (<v)* (>v)* v*	int a = off, b = a, c = off + len - 1, d = c;	while(true) {	    while (b <= c && x[b] <= v) {		if (x[b] == v)		    swap(x, a++, b);		b++;	    }	    while (c >= b && x[c] >= v) {		if (x[c] == v)		    swap(x, c, d--);		c--;	    }	    if (b > c)		break;	    swap(x, b++, c--);	}	// Swap partition elements back to middle	int s, n = off + len;	s = Math.min(a-off, b-a  );  vecswap(x, off, b-s, s);	s = Math.min(d-c,   n-d-1);  vecswap(x, b,   n-s, s);	// Recursively sort non-partition-elements	if ((s = b-a) > 1)	    sort1(x, off, s);	if ((s = d-c) > 1)	    sort1(x, n-s, s);    }    /**     * Swaps x[a] with x[b].     */    private static void swap(double x[], int a, int b) {	double t = x[a];	x[a] = x[b];	x[b] = t;    }    /**     * Swaps x[a .. (a+n-1)] with x[b .. (b+n-1)].     */    private static void vecswap(double x[], int a, int b, int n) {	for (int i=0; i<n; i++, a++, b++)	    swap(x, a, b);    }    /**     * Returns the index of the median of the three indexed doubles.     */    private static int med3(double x[], int a, int b, int c) {	return (x[a] < x[b] ?		(x[b] < x[c] ? b : x[a] < x[c] ? c : a) :		(x[b] > x[c] ? b : x[a] > x[c] ? c : a));    }    /**     * Sorts the specified sub-array of floats into ascending order.     */    private static void sort1(float x[], int off, int len) {	// Insertion sort on smallest arrays	if (len < 7) {	    for (int i=off; i<len+off; i++)		for (int j=i; j>off && x[j-1]>x[j]; j--)		    swap(x, j, j-1);	    return;	}	// Choose a partition element, v	int m = off + (len >> 1);       // Small arrays, middle element	if (len > 7) {	    int l = off;	    int n = off + len - 1;	    if (len > 40) {        // Big arrays, pseudomedian of 9		int s = len/8;		l = med3(x, l,     l+s, l+2*s);		m = med3(x, m-s,   m,   m+s);		n = med3(x, n-2*s, n-s, n);	    }	    m = med3(x, l, m, n); // Mid-size, med of 3	}	float v = x[m];	// Establish Invariant: v* (<v)* (>v)* v*	int a = off, b = a, c = off + len - 1, d = c;	while(true) {	    while (b <= c && x[b] <= v) {		if (x[b] == v)		    swap(x, a++, b);		b++;	    }	    while (c >= b && x[c] >= v) {		if (x[c] == v)		    swap(x, c, d--);		c--;	    }	    if (b > c)		break;	    swap(x, b++, c--);	}	// Swap partition elements back to middle	int s, n = off + len;	s = Math.min(a-off, b-a  );  vecswap(x, off, b-s, s);	s = Math.min(d-c,   n-d-1);  vecswap(x, b,   n-s, s);	// Recursively sort non-partition-elements	if ((s = b-a) > 1)	    sort1(x, off, s);	if ((s = d-c) > 1)	    sort1(x, n-s, s);    }    /**     * Swaps x[a] with x[b].     */    private static void swap(float x[], int a, int b) {	float t = x[a];	x[a] = x[b];	x[b] = t;    }    /**     * Swaps x[a .. (a+n-1)] with x[b .. (b+n-1)].     */    private static void vecswap(float x[], int a, int b, int n) {	for (int i=0; i<n; i++, a++, b++)	    swap(x, a, b);    }    /**     * Returns the index of the median of the three indexed floats.     */    private static int med3(float x[], int a, int b, int c) {	return (x[a] < x[b] ?		(x[b] < x[c] ? b : x[a] < x[c] ? c : a) :		(x[b] > x[c] ? b : x[a] > x[c] ? c : a));    }    /**     * Sorts the specified array of objects into ascending order, according to     * the <i>natural ordering</i> of its elements.  All elements in the array     * must implement the <tt>Comparable</tt> interface.  Furthermore, all     * elements in the array must be <i>mutually comparable</i> (that is,     * <tt>e1.compareTo(e2)</tt> must not throw a <tt>ClassCastException</tt>     * for any elements <tt>e1</tt> and <tt>e2</tt> in the array).<p>     *     * This sort is guaranteed to be <i>stable</i>:  equal elements will     * not be reordered as a result of the sort.<p>     *     * The sorting algorithm is a modified mergesort (in which the merge is     * omitted if the highest element in the low sublist is less than the     * lowest element in the high sublist).  This algorithm offers guaranteed

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -