Java对数组进行排序并在数组中插入元素
可以使用内置的 sort函数对数组进行排序,而对于插入,我们必须创建一个新数组才能这样做,因为Java中的数组是不可变的。要了解有关Java排序的更多信息,请参阅下面提到的文章:
排序: Java中的 Arrays.sort() 示例
方法一:
- 创建一个大小为 N+1 的新数组。
- 在新数组中复制第一个数组。
- 在数组末尾插入数字。
- 对数组进行排序。
示例:插入一个元素,然后对数组进行排序。
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)
方法二:
- 对数组进行排序。
- 创建一个大小为 N+1 的新数组。
- 开始遍历给定的数组并复制元素。
- 如果给定的数字小于数组中存在的数字,则将给定的数字附加到新数组中。
- 将给定数组的剩余元素复制到新数组。
示例:插入一个元素,然后对数组进行排序。
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)
方法三:
- 创建一个集合。
- 开始添加集合中的所有元素。
- 将给定集合的剩余元素复制到新数组。
示例:插入一个元素,然后对数组进行排序。
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)