数组的常见操作

遍历

方式1:

    public static void printArray(int[] arr) {
        for(int x=0; x<arr.length; x++) {       //arr.length获取数值长度
            System.out.println(arr[x]);
        }
    }

方式2:

    public static void printArray(int[] arr) {
        System.out.print("[");
        for(int x=0; x<arr.length; x++) {
            if(x == arr.length-1) {
                System.out.println(arr[x] + "]");
            }
            else {
                System.out.println(arr[x] + ",");
            }
        }
    }

最值

最大值

    public static int getMax(int[] arr) {
        int max = arr[0];

        for (int x=1; x<arr.length; x++) {
            if (arr[x] > max);
                max = arr[x];
        }
        return max;
    }

最小值

    public static int getMin(int[] arr) {
        int min = arr[0];

        for (int x=1; x<arr.length; x++) {
            if (arr[x] < min);
                min = arr[x];
        }
        return min;
    }

逆序

方式1:

    public static int reverse (int[] arr) {
        for (int x=0; x<arr.length/2; x++) {
            int temp = arr[x];
            arr[x] = arr[arr.length-1-x];
            arr[arr.length-1-x] = temp;
        }
    }

方式2:

    public static int reverse(int[] arr) {
        for (int start=0,end=arr.length-1; start<=end; start++,end--) {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }

查表

    public static String getString(String[] strArray,int index) {
        return strArray[index];
    }

基本查找(数组无序)

方式1:

    public static int getIndex(int[], int value) {
        for (int x=0; x<arr.length; x++)
            if(arr[x] == value) {
                return x;
            }
        return -1;
    }

方式2:

    public static getIndex(int[] arr, int value) {
        int index = -1;

        for(int x=0; x<arr.length; x++)
            if(arr[x] = value) {
                index = x;
                break;
            }
        return index;
    }

二分查找

前提:数组中的元素要有序

    public static int halfSeach_2(int[] arr,int key){
        int min,max,mid;
        min = 0;
        max = arr.length-1;
        mid = (max+min)>>1; //(max+min)/2;
        while(arr[mid]!=key){
            if(key>arr[mid]){
                min = mid + 1;
            }
            else if(key<arr[mid])
                max = mid - 1;
            if(max<min)
                return -1;
            mid = (max+min)>>1;
        }
        return mid;
    }

排序

冒泡排序

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

    public static void bubbleSort(int[] arr) {
        for(int x=0; x<arr.length-1; x++) {
            for(int y=0; y<arr.length-1-x; y++) {
                if(arr[y] > arr[y+1]) {
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
    }

选择排序

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

    public static void selectSort(int[] arr) {
        for(int x=0; x<arr.length-1; x++) {
            for(int y=x+1; y<arr.length; y++) {
                if(arr[x] > arr[y]) {
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
        }
    }

快速排序

快速排序的思想是分治思想。主要原理是将数组分为A[p..q-1] 和A[q+1..r],然后调整元素使得A[p..q-1]小于等于q,也小于等于A[q+1..r]。然后不断的递归,到最后就排序完成。

更多算法教程,请移步:

http://ahalei.blog.51cto.com/

时间: 2024-08-26 10:20:47

数组的常见操作的相关文章

数组的常见操作及易出现的问题

数组遍历 数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历. package demo02; public class Demo03Array { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; // for循环遍历数组 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } } 执行结果 ? 数组获取最大值元素

javascipt中数组的常见操作

1.与lua不同,即使数组中间有null或者undefined,仍然能求出正确的长度 2.length 改变.length也会改变数组的大小 3. indexOf arr.indexOf(a)会返回第一个a的下表,如果没有,返回-1 4.slice()参数包括开始索引,不包括结束索引.左闭右开 如果不给slice()传递任何参数,它就会从头到尾截取所有元素.利用这一点,我们可以很容易地复制一个Array: 5.push() pop() push()向Array的末尾添加若干元素,pop()则把A

[java学习笔记]java语言基础概述之数组的定义&amp;常见操作(遍历、排序、查找)&amp;二维数组

1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一旦创建,必须明确长度)          格式1:              元素类型   [ ]  数组名  =  new  元素类型  [元素个数即数组的长度]:              示例:int[] array = new int[5];          格式2:           

数组常见操作_使用字母打印正三角形

数组常见操作: 使用字母打印正三角形 public class fifty { public static void main(String[] args) { char[] c = {'A','B','C','D','E','F','G'}; //要打印的行数 for(int i = 0;i<c.length; i++){ //打印每一行空格 for(int j = i; j<c.length-1; j++){ System.out.print(" "); } //打印每

数组常见操作_猜数游戏

数组常见操作: 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数,并记录该数在数组中存在多少次 public class fortyNine { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] sum = {10,20,21,34,65,76,6,87,98,20}; System.out.println("猜数游戏开始!"); System.out.

Java中对数组的一些常见操作

数组是一种数据结构,用来存储同一类型值的集合.通过一个整型下标可以访问数组中的每一个值. 常见操作如下: 声明数组: 数组初始化: 查看数组长度: for each循环: 数组拷贝: 数组排序: 将int数组转换为字符串: 二维数组: 1. 声明数组 语法:  数据类型[ ] 数组名: 或者   数据类型 数组名[ ]: 2.数组初始化 3.获得数组长度 4.for each循环 foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组.集合时, foreach

java学习第05天(数组常见操作、数组中的数组)

(4)数组常见操作 a.遍历取值 class ArrayDemo3 { public static void main(String[] args) { //System.out.println("Hello World!"); //格式1 /* 需要一个容器,但不明确容器的具体数据. */ //int[] arr = new int[8]; //格式2 /* 需要一个容器,储存一直的具体数据. */ //元素类型[] 数组名 = new 元素类型[](元素,元素,....); //i

数组常见操作、Arrays类、基本数据类型包装类

数组常见操作 冒泡排序法 选择排序法 二分查找法 Arrays类 成员方法示例 基本数据类型包装类 基本类型和包装类的对应 Integer类举例 装箱和拆箱 int转换成String类型 String类型转换成int类型 原文地址:http://blog.51cto.com/13987153/2308625

JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

壹 ? 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但我觉得大家至少应该掌握一种,这样在面试能解决大部分数组问题.在了解实现思路后,日常开发中结合实际场景优化实现,提升性能也是后期该考虑的. 本文主要围绕数组去重.数组排序.数组降维.数组合并.数组过滤.数组求差集,并集,交集,数组是否包含某项等知识点展开,附带部分知识拓展,在看实现代码前也建议大家先自