Day09_数组(上)

Day09_数组(上)

数组有默认的初始值

基本数据类型默认值:

byte: 0

short:0

int: 0

long: 0L

float: 0.0F

double: 0.0

char: '\u0000'

Boolean: false

引用数据类型默认值:

null

增强for循环(foreach循环)

//优点:简单
//缺点:不能进行与索引相关的操作
//scores是数组
int[] scores=new int[10];
scores={12,4,56,7,89,80}
for(int s:){
  System.out.println(s);
}

数组的优点缺点

优点:遍历快,查询快

缺点:删除,增加,效率低,原因:需要移动大量的元素

冒泡排序(得名由来)

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

快速排序

import java.lang.reflect.Array;
import java.util.Arrays;

public class FastSort {
    public static void main(String[] args) {
        int[] arr={12,4,5,67,34,23,879,46,4,-79,-67};
        fastsort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }

    //快速排序方法,三个参数,arr要排序的数组范围是arr[low]-arr[high]
    public static void fastsort(int[] arr,int low,int high){
        if(low>=high){
            return;
        }
        int i = low;
        int j = high;
        int key= arr[i];
        while(i<j){
            while(key<=arr[j]&&i<j){
                j--;
            }
            if (i<j){
                int t;
                t=arr[j];
                arr[j]=arr[i];
                arr[i]=t;
            }

            while(arr[i]<=key&&i<j){
                i++;
            }
            if(i<j){
                int t;
                t=arr[j];
                arr[j]=arr[i];
                arr[i]=t;
            }

            //对key左侧的数组继续操作
            fastsort(arr,low,i-1);
            
            //对key右侧的数组继续操作
            fastsort(arr,i+1,high);
        }
    }
}

输出:

[-79, -67, 4, 4, 5, 12, 23, 34, 46, 67, 879]
posted @ 2020-07-26 01:32  XLR  阅读(113)  评论(0编辑  收藏  举报