📜  Java对数组进行排序并在数组中插入元素

📅  最后修改于: 2022-05-13 01:54:42.267000             🧑  作者: Mango

Java对数组进行排序并在数组中插入元素

可以使用内置的 sort函数对数组进行排序,而对于插入,我们必须创建一个新数组才能这样做,因为Java中的数组是不可变的。要了解有关Java排序的更多信息,请参阅下面提到的文章:

排序: Java中的 Arrays.sort() 示例

方法一:

  1. 创建一个大小为 N+1 的新数组。
  2. 在新数组中复制第一个数组。
  3. 在数组末尾插入数字。
  4. 对数组进行排序。

示例:插入一个元素,然后对数组进行排序。

Java
// Java program to insert an element in
// an array and then sorting it.
 
// Importing util files
import java.util.*;
 
public class Gfg {
 
    // Main function
    public static void main(String args[]) throws Exception
    {
 
        // Given number
        int given_number = 1;
 
        // Array
        int array[] = { 6, 7, 8, 2, 3, 4, 5, 9, 10 };
 
        // Creating new array with increased size
        int new_array[] = new int[array.length + 1];
 
        // Copying elements from one array to another
        for (int i = 0; i < array.length; i++) {
            new_array[i] = array[i];
        }
 
        // Adding new element
        new_array[new_array.length - 1] = given_number;
 
        // Sorting new array
        Arrays.sort(new_array);
 
        // print array
        for (int i = 0; i < new_array.length; i++)
            System.out.print(new_array[i] + " ");
    }
}


Java
// Java program to insert an element
// in an array and then sorting it.
 
// Importing util files
import java.util.*;
 
public class Gfg {
 
    // Main function
    public static void main(String args[]) throws Exception
    {
 
        // Given Number
        int given_number = 1;
 
        // Array
        int array[] = { 6, 7, 8, 2, 3, 4, 5, 9, 10 };
 
        // Sort Given array
        Arrays.sort(array);
 
        // Creating new array with increased size
        int new_array[] = new int[array.length + 1];
 
        // Copying elements from one
        // array to another as in approach 2
        int i = 0, j = 0;
        for (i = 0; i < new_array.length; i++) {
            if (given_number <= array[i]) {
                new_array[i] = given_number;
                break;
            }
            else
                new_array[i] = array[j++];
        }
 
        // copy the remaining elements
        for (int k = i + 1; k < new_array.length; k++)
            new_array[k] = array[j++];
 
        // print new array
        for (i = 0; i < new_array.length; i++)
            System.out.print(new_array[i] + " ");
    }
}


Java
// Java program to insert an element
// in an array and then sorting it.
 
// Importing util files
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
 
public class GFG {
 
    public static void main(String[] args)
    {
 
        // using wrapper class here for array,
        // to convert into object
        Integer arr[] = { 6, 7, 8, 2, 3, 4, 5, 9, 10 };
 
        Set sets
            = new HashSet(Arrays.asList(arr));
 
        sets.add(1);
 
        arr = sets.toArray(arr);
 
        // print the array
        System.out.println(Arrays.toString(arr));
    }
}


输出
1 2 3 4 5 6 7 8 9 10 

时间复杂度: O(n log n)

方法二:

  1. 对数组进行排序。
  2. 创建一个大小为 N+1 的新数组。
  3. 开始遍历给定的数组并复制元素。
  4. 如果给定的数字小于数组中存在的数字,则将给定的数字附加到新数组中。
  5. 将给定数组的剩余元素复制到新数组。

示例:插入一个元素,然后对数组进行排序。

Java

// Java program to insert an element
// in an array and then sorting it.
 
// Importing util files
import java.util.*;
 
public class Gfg {
 
    // Main function
    public static void main(String args[]) throws Exception
    {
 
        // Given Number
        int given_number = 1;
 
        // Array
        int array[] = { 6, 7, 8, 2, 3, 4, 5, 9, 10 };
 
        // Sort Given array
        Arrays.sort(array);
 
        // Creating new array with increased size
        int new_array[] = new int[array.length + 1];
 
        // Copying elements from one
        // array to another as in approach 2
        int i = 0, j = 0;
        for (i = 0; i < new_array.length; i++) {
            if (given_number <= array[i]) {
                new_array[i] = given_number;
                break;
            }
            else
                new_array[i] = array[j++];
        }
 
        // copy the remaining elements
        for (int k = i + 1; k < new_array.length; k++)
            new_array[k] = array[j++];
 
        // print new array
        for (i = 0; i < new_array.length; i++)
            System.out.print(new_array[i] + " ");
    }
}
输出
1 2 3 4 5 6 7 8 9 10 

时间复杂度: O(n log n)

方法三:

  1. 创建一个集合。
  2. 开始添加集合中的所有元素。
  3. 将给定集合的剩余元素复制到新数组。

示例:插入一个元素,然后对数组进行排序。

Java

// Java program to insert an element
// in an array and then sorting it.
 
// Importing util files
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
 
public class GFG {
 
    public static void main(String[] args)
    {
 
        // using wrapper class here for array,
        // to convert into object
        Integer arr[] = { 6, 7, 8, 2, 3, 4, 5, 9, 10 };
 
        Set sets
            = new HashSet(Arrays.asList(arr));
 
        sets.add(1);
 
        arr = sets.toArray(arr);
 
        // print the array
        System.out.println(Arrays.toString(arr));
    }
}
输出
1 2 3 4 5 6 7 8 9 10 

时间复杂度: O(n log n)