算法-倒置排序

#include<iostream> 
#include<cmath>
int a[10001],c[10001];
using namespace std;
int main()
{ int N,n,b,s;
 cin>>N;
 for(int i=1;i<=N;i++)
 {cin>>n;
 for(int j=1;j<=n;j++)
{ s=0;
	 cin>>b;
	a[j]=b;
 while(b!=0)
{ s=s*10+b%10;
 b/=10;}
 c[j]=s;}
for(int j=1;j<=n-1;j++)
for(int k=1;k<=n-j;k++)
 if(c[k]<c[k+1])
{swap(c[k],c[k+1]);
swap(a[k],a[k+1]);}
for(int j=n;j>=1;j--)
 cout<<a[j]<<" ";
 cout<<endl;}
	return 0; 
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是回复: 首先,我们可以编写一个类来从控制台输入数值并存入数组中: ``` import java.util.Scanner; public class InputArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入数组长度:"); int length = scanner.nextInt(); int[] array = new int[length]; System.out.println("请输入数组元素:"); for (int i = ; i < length; i++) { array[i] = scanner.nextInt(); } scanner.close(); } } ``` 接下来,我们可以使用已学的内排序算法对数组进行排序。这里我们以冒泡排序为例: ``` public class BubbleSort { public static void main(String[] args) { int[] array = {5, 3, 8, 4, 2}; for (int i = ; i < array.length - 1; i++) { for (int j = ; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } for (int i = ; i < array.length; i++) { System.out.print(array[i] + " "); } } } ``` 最后,我们可以将排序后的数组倒置输出: ``` public class ReverseArray { public static void main(String[] args) { int[] array = {2, 4, 8, 3, 5}; for (int i = ; i < array.length / 2; i++) { int temp = array[i]; array[i] = array[array.length - 1 - i]; array[array.length - 1 - i] = temp; } for (int i = ; i < array.length; i++) { System.out.print(array[i] + " "); } } } ``` 以上就是编写类从控制台输入数值存入数组,利用已学的内排序算法,对数组数据排序,并倒置输出的方法。 ### 回答2: 编写一个类,该类从控制台输入数值并将其存入一个数组。这个数组将是我们对其进行排序的基础。我们已经学过了几个排序算法,包括冒泡排序、选择排序和插入排序。这些排序算法都可以用来对数组进行排序。 一个简单的内排序方法是冒泡排序,它遍历整个数组并比较相邻的元素,如果一个元素比它的后一个元素大,则交换这两个元素的位置。我们可以使用这个算法对输入的数组进行排序,然后将其倒置并输出。 以下是代码示例: ``` import java.util.Scanner; public class ArraySorting { private int[] array; public ArraySorting(int size) { array = new int[size]; } public void sort() { for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - i - 1; j++) { if (array[j] > array[j + 1]) { int tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } } } public void reverse() { int i = 0; int j = array.length - 1; while (i < j) { int tmp = array[i]; array[i] = array[j]; array[j] = tmp; i++; j--; } } public void printArray() { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入要存入数组的整数个数:"); int size = scanner.nextInt(); ArraySorting arraySorting = new ArraySorting(size); System.out.print("请输入" + size + "个整数:"); for (int i = 0; i < size; i++) { arraySorting.array[i] = scanner.nextInt(); } arraySorting.sort(); System.out.println("排序后的数组为:"); arraySorting.printArray(); arraySorting.reverse(); System.out.println("倒置后的数组为:"); arraySorting.printArray(); } } ``` 在运行上面的代码时,我们首先会被要求输入要存入数组的整数个数。接着,程序会询问我们要输入的整数。在输入完成之后,程序会对数组进行排序并输出排序后的数组。然后,它会将排序后的数组倒置并再次输出。 如果我们输入了以下数字: ``` 5 2 3 1 5 4 ``` 程序会输出: ``` 排序后的数组为: 1 2 3 4 5 倒置后的数组为: 5 4 3 2 1 ``` 这说明我们的程序能够正确地对输入的数组进行排序,并能够将排序后的数组倒置输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Famiglistimott

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值