Java 数组元素的排序,输出排序后的序号,从小到大排序,并且要求相同的数据其序号是相同的。 Java 数组元素的排序,输出排序后的序号! 注意输出是原来...

\u6570\u7ec4\u5143\u7d20\u7684\u6392\u5e8f\uff0c\u8f93\u51fa\u6392\u5e8f\u540e\u7684\u5e8f\u53f7 \u3010\u6570\u7ec4\u3011\u3010\u6392\u5e8f\u3011

\u9019\u984c\u9084\u7b97\u6709\u8da3. #include using namespace std; void main() { int n; cin >> n; int* a=new int[n]; int* order=new int[n]; for(int i=0; i> a[i]; order[i]=0; } int eqNum=0; for(int ord=1; ord+eqNum0) cout << " "; cout << order[i]; } }

\u8fd9\u4e2a\u80fd\u89e3\u51b3\u4f60\u7684\u95ee\u9898
import java.util.Arrays;
public class ArraySortDemo
{
public static void main(String[] args )
{
int [] array = {-3,75,12,-3};//\u539f\u6570\u7ec4
getSortIndex(array);
}
private static void getSortIndex(int[] array)
{
int [] array_copy =new int[array.length];//\u65b0\u6570\u7ec4 \u62f7\u8d1d\u539f\u6570\u7ec4 \uff08\u5982\u679c\u4e0d\u62f7\u8d1d\u539f\u6570\u7ec4\u5728\u6392\u5e8f\u540e\u88ab\u6539\u53d8\uff09
array_copy = Arrays.copyOf(array, array.length);

Arrays.sort(array);;//\u83b7\u53d6\u6392\u5e8f\u540e\u7684\u6570\u7ec4

for (int x=0;x<array_copy.length;x++)
{
for(int y=0;y<array.length;y++)
{
if(array_copy[x]==array[y])
{
System.out.print(y+1+"\t");
break;
}
}
}
}

}
\u6548\u679c\uff1a

public class BubbleSort {
/**
* 冒泡排序
* @param args
*/
public static void main(String[] args) {
int[] num={51,15,12,84,21,24,0,114,54,123,1,25,4,6};
int tmp=0;
for(int n=0;n<num.length;n++){
System.out.println(num[n]+"排序前的序号为:"+(n+1));
}
for(int i=0;i<num.length;i++){
for(int j=i+1;j<num.length;j++){
if(num[i]>num[j]){
tmp=num[i];
num[i]=num[j];
num[j]=tmp;
}
}
}
System.out.println();
for(int k=0;k<num.length;k++){
System.out.println(num[k]+"排序后的序号为:"+(k+1));
}
}
}

//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void main(String[] args) {
int[] a = {25,15,42,16,12,36};
int max = 0;
int tmp = 0;
for(int i=0;i<a.length;i++){
max = i;//
/**查找第 i大的数,直到记下第 i大数的位置***/
for(int j=i+1;j<a.length;j++){
if(a[max]<a[j])
max = j;//记下较大数位置,再次比较,直到最大
}
/***如果第 i大数的位置不在 i,则交换****/
if(i!=max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}

扩展阅读:java数组删除指定元素 ... java方法实现数组排序 ... java输出数组各个元素 ... java往数组里添加元素 ... java输入10个元素的数组 ... java 归并排序 ... java数组排序从小到大 ... java数组最后一个元素 ... java map取第一个元素 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网