排序
- 用 Arrays.parallelSort( )排序
package student;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
public class Sorting {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner reader = new Scanner(System.in);
Random random = new Random();
int n = reader.nextInt();
int array[] = new int[n];
for(int i=0; i<n; i++){
array[i]=random.nextInt(10);
}
System.out.println(Arrays.toString(array));
Arrays.parallelSort(array);
System.out.println(Arrays.toString(array));
}
}
2.选择排序
package student;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
public class Sorting {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner reader = new Scanner(System.in);
Random random = new Random();
int n = reader.nextInt();
int array[] = new int[n];
for(int i=0; i<n; i++){
array[i]=random.nextInt(10);
}
System.out.println(Arrays.toString(array));
for(int i=0; i<n; i++) {
for(int j=i+1; j<n; j++){
if(array[j] > array[i])
{
int temp= array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
System.out.println(Arrays.toString(array));
}
}
3.冒泡排序
package student;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
public class Sorting {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner reader = new Scanner(System.in);
Random random = new Random();
int n = reader.nextInt();
int array[] = new int[n];
for(int i=0; i<n; i++){
array[i]=random.nextInt(10);
}
System.out.println(Arrays.toString(array));
for(int i=0; i<n-1; i++){
for(int j=0; j<n-1-i; j++){{
array[j]=array[j] ^ array[j+1];
array[j+1]=array[j] ^ array[j+1];
array[j]=array[j] ^ array[j+1];
}
}
}
System.out.println(Arrays.toString(array));
}
}
4.快速排序
package student;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
public class Sorting {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner reader = new Scanner(System.in);
Random random = new Random();
int n= reader.nextInt();
int array[]= new int[n];
for(int i=0; i<n; i++)
array[i]=random.nextInt(10);
System.out.println(Arrays.toString(array));
quickSort(array);
System.out.println(Arrays.toString(array));
}
public static void Sort(int[] a){
if(a.length>0){
quickSort(a, 0 , a.length-1);
}
}
private static void quickSort(int[] a, int low, int high){
//1,找到递归算法的出口
if( low > high)
{
return;
}
//Store numbers;
int i = low;
int j = high;
//key
int key = a[ low ];
//Sort the array for teh
while( i< j)
{
//Find the first number less than key from right to left
while(i<j && a[j] > key)
{
j--;
}
// Find the first number less than key from left to right
while( i<j && a[i] <= key)
{
i++;
}
//Swap two numbers
if(i<j)
{
int p = a[i];
a[i] = a[j];
a[j] = p;
}
}
// Adjust the position of key
int p = a[i];
a[i] = a[low];
a[low] = p;
//Sort the numbers in the left of key
quickSort(a, low, i-1 );
//Sort the numbers in the right of key
quickSort(a, i+1, high);
}
}