Java面向对象编程 -6.7
数组相关类库
- 数组排序:java.util.Arrays.sort(数组名称)
- 数组拷贝(把方法做了一些变形):System.arraycopy(源数组,源数组开始点,目标数组,目标数组开始点,拷贝长度)
这些操作的支持是系统本身提供的,即:你都是可以在开发中使用的操作。
class aUtils{
public static void Sort(int [] A,int Aindex,int [] B,int Bindex,int len) {
for(int i=0;i<len;i++) {
B[Bindex++] = A[Aindex++];
}
}
}
public class sag {
public static void main(String[] args) {
int []A = new int[]{1,2,3,4,5,6,7,8,9};
int []B = new int[] {11,22,33,44,55,66,77,88,99};
aUtils.Sort(A, 5, B, 3, 3);
System.out.println(Arrays.toString(B));
}
}
>>>[11, 22, 33, 6, 7, 8, 77, 88, 99]
如果要是自己去定义这种拷贝或者排序的方法就需要考虑所有数据类型 ,写重复 麻烦
分析单次冒泡排序
class utils{
public static void sort(int []arr) {
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]) {
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
print(arr);
}
public static void print(int []arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i] +" ");
}
}
}
public class hjf {
//冒泡排序
public static void main(String[] args) {
int[] arr = new int[] {3,4,5,1,2};
utils.sort(arr);
}
}
>>>3 4 1 2 5 //最大值沉到最后
最简单的修改
class utils{
public static void sort(int []arr) {
for(int x=0;x<arr.length;x++) {//外层循环等于数组长度 一定能排位
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]) {
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
}
print(arr);
}
public static void print(int []arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i] +" ");
}
}
}
public class hjf {
//冒泡排序
public static void main(String[] args) {
int[] arr = new int[] {3,4,5,1,2};
utils.sort(arr);
}
}
>>>1 2 3 4 5
优化 内存循环可以减少次数
class utils{
public static void sort(int []arr) {
for(int x=0;x<arr.length;x++) {
for(int i=0;i<arr.length-1-x;i++){
if(arr[i]>arr[i+1]) {
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
}
print(arr);
}
public static void print(int []arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i] +" ");
}
}
}
public class hjf {
//冒泡排序
public static void main(String[] args) {
int[] arr = new int[] {3,4,5,1,2};
utils.sort(arr);
}
}