Java SE 035バブルソート、交換ソート、クイックソートの原則と実装

(1)人が諦めない限り、全世界があなたを諦めない
(2)私は大いに役立つために生まれる(3)
学ぶことの苦しみに耐えられないのなら、人生の苦しみに耐えなければならない。深い理解。
(4)難しいことをすることで得なければなりません
5)精神は本当の刃です。
(6)相手を2回、心の中で初めて征服します。
(7)書くのは本当に簡単ではありません。好きな場合や何か持っている場合好き+フォローまたはお気に入りを忘れないでください〜

Java SE 035バブルソート、交換ソート、クイックソートの原則と実装

1.システムクラスarraycopy(コピーアレイ)

public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

(1)パラメータ:

  • src-ソース配列。
  • srcPos-ソース配列の開始位置。
  • dest-宛先配列。
  • destPos-宛先データの開始位置。
  • length-コピーされる配列要素の数。

(2)このメソッドの主な機能は、ソース配列の要素をターゲット配列にコピーすることです。

  • 最初のパラメータは次のとおりです。コピーする配列を参照します
  • 2番目のパラメーターは次のとおりです。はソース配列の開始位置であり、そこからソース配列の要素位置がコピーされます。
  • 3番目のパラメーターは、ソース配列のコピー先の配列です。
  • 4番目のパラメーターは次のとおりです。コピーを受信するターゲット配列の位置を指定します。
  • 5番目のパラメーターは次のとおりです。コピーする配列要素の数を示します。

例:

public class ArrayTest2
{
    
    
	public static void main(String [] args){
    
    
		int [] a = new int[]{
    
    1,2,3,4};
		int [] b = new int[4];

		System.arraycopy(a,0,b,0,4);

		for(int i = 0; i < b.length; i++){
    
    
			System.out.println(b[i]);
		}
	}
}

2.3次元配列

	type [][][] a = new type[2][3][4];
public class ThreeDimensionArrayTest
{
    
    
	public static void main(String [] args){
    
    
		int [][][] a = new int[2][3][4];
		System.out.println(a instanceof int[][][]);

		for(int i = 0 ; i < a.length; i++){
    
    
			for(int j = 0 ; j < a[i].length; j++){
    
    
				for(int k = 0; k<a[i][j].length; k++){
    
    
					a[i][j][k] = 100;
				}
			}
		}
	}
}

3.バブルソート

package com.javareview.arraysim;

/**
 * 冒泡排序
 * @author xiongjie
 *
 */
public class ArraySort {
    
    

	public static void main(String[] args) {
    
    
		int [] a = new int[] {
    
    100,108,33,156,15,76,90};
		
		for(int i = 0 ; i < a.length - 1;i++) {
    
    //控制比较的轮数
			//控制每一次比较的元素的索引。为什么要-i-1呢,主要控制排完序之后,即找到的第三或第四大的元素就不用去比较它们了。也就是每一次比较的个数都比上一次少一个。
			for(int j = 0 ; j < a.length - i - 1;j++) {
    
    
				if(a[j] > a[j + 1]) {
    
    
					int temp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = temp;
				}
			}
		}
		
		for(int k = 0 ; k < a.length ; k++) {
    
    
			System.out.print(a[k] + " ");
		}
		
		System.out.println();

	}

}

おすすめ

転載: blog.csdn.net/xiogjie_67/article/details/108501170