常见的几种数组排序方法

1.选择排序:从数组空间中选择第一个空间然后和其他空间中的数据进行比较,如果要求升序排列,那么选择的这个空间中的数据和其他空间中的数据比较完之后将最小的数据和当前的第一个空间中的数据进行互换位置。然后再选择第二个空间中的数据和除第一个空间中的数据进行比较,同样找出最小的数据,将两个空间中的数据的位置互换。后面的数据以此类推,一直到将所有的数据变成从小变大的数据为止。如果将数据进行降序排列,方法相反。

public class Demo {
	public static void main(String[] asadscgs) {

		int[] arr = { 23, 12, 48, 56, 45 };
		for (int i = 0; i < arr.length; i++) {
			int tem = i;
			for (int j = i; j < arr.length; j++) {
				if (arr[j] < arr[tem]) {
					tem = j;
				}
			}
			int temp1 = arr[i];
			arr[i] = arr[tem];
			arr[tem] = temp1;
		}
		System.out.println(Arrays.toString(arr));
	}
}

2.冒泡排序:

public class Demo {
	public static void main(String[] asadscgs) {

		int[] arr = { 23, 12, 48, 56, 45 };
		int temp = -1;
		for (int i = 0; i < arr.length; i++) {
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[i] > arr[j]) {
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(arr));
	}

}

3.反转排序:

public class Demo {
	public static void main(String[] asadscgs) {

		int[] arr = { 23, 12, 48, 56, 45 };
		for (int i = 0; i < arr.length / 2; i++) {
			int temp = arr[i];
			arr[i] = arr[arr.length - i - 1];
			arr[arr.length - i - 1] = temp;
		}
		System.out.println(Arrays.toString(arr));
	}
}

4.常用操作:

public class Demo {
	public static void main(String[] asadscgs) {

		int[] arr = { 45, 34, 53, 43 };
		Arrays.sort(arr); // 对数组进行排序(从小到大)
		System.out.println(Arrays.toString(arr));

		// 二分搜索法(使用之前需要先排序)
		int i = Arrays.binarySearch(arr, 34);
		System.out.println(i);
		int[] newArr = Arrays.copyOf(arr, 7);
		int[] newArr1 = Arrays.copyOfRange(arr, 1, 3);
		System.out.println(Arrays.toString(newArr));
		System.out.println(Arrays.toString(newArr1));

		int j = Arrays.binarySearch(arr, 1, 3, 34);
		System.out.println(j);
	}
}

  

posted @ 2018-02-02 17:16  JiangNian  阅读(1248)  评论(0编辑  收藏  举报