利用Java语言,实现数组的排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Java语言,实现数组的排序相关的知识,希望对你有一定的参考价值。

先输入十个数,将这十个数组成数组并以将序排列输出,然后再向这个数组插入一个数让这个数组依然按照降序排列输出,(要求向数组插入数时必须使用插入算法,不能使用排序算法)
实现效果如下:
请输入十个数:
12 34 2 4 5 6 7 9 31 21
降序排列后输出结果:
2 4 5 6 7 9 12 21 31 34
插入一个数:
23
插入一个数后的输出结果:
2 4 5 6 7 9 12 21 23 31 34

import java.util.Scanner;

public class Test
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
System.out.println("请输入十个数:");
int arr[] = new int[11];
for (int i=0;i<10;i++)
arr[i] = scanner.nextInt();

for (int i=0;i<10;i++)
for (int j=i;j<10;j++)
if (arr[i]<arr[j])
int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;



System.out.println("降序排列后输出结果:");
for (int i=0;i<10;i++)
System.out.print(arr[i] + " ");

System.out.println();
System.out.println("插入一个数:");
int ex = scanner.nextInt();
for (int i=0;i<10;i++)
if (ex>arr[i])
for (int j=10;j>i;j--)
arr[j] = arr[j-1];

arr[i] = ex;
break;


System.out.println("插入一个数后的输出结果:");
for (int i=0;i<11;i++)
System.out.print(arr[i] + " ");


参考技术A int[] i = new int[10];
int[] j = i.sort();
参考技术B // 快速排序算法
public int partition(int num[], int low, int high)
int m = num[low];// 记录关键字
while (low < high)
while (low < high && num[high] <= m)
--high;// 将比记录小的记录移到低端
num[low] = num[high];
while (low < high && num[low] >= m)
++low;// 将比记录大的记录移到高端
num[high] = num[low];

num[low] = m;// 返回记录轴的位置
return low;

//快速排序递归 的实现
public void QSort(int num[], int low, int high)
if (low < high) // 长度大于一
int pivotloc = partition(num, low, high);// 将数据一分为二
QSort(num, low, pivotloc - 1);// 递归排序
QSort(num, pivotloc + 1, high);

参考技术C 这个随便找本书,上面都有的呀

以上是关于利用Java语言,实现数组的排序的主要内容,如果未能解决你的问题,请参考以下文章

java语言插入数组中一个数,仍然能够实现排序

java语言实现堆排序

java语言实现冒泡排序

用C语言编写程序,实现在数组中指定位置插入一个新的数字?(数组不是排序好的)谢谢

c语言如何实现-数组排序,二分查找

java基础