排序问题

zhaopeng1202 2009-09-28 02:20:36
随即生成0-10的数字,通过排序输出排序后和排序前的结果
...全文
155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang677888 2009-09-28
  • 打赏
  • 举报
回复
看看 学习
zuoyanduxiaobo 2009-09-28
  • 打赏
  • 举报
回复

import java.lang.*;
public class Data {
public static void main(String[] args)
{
int list[]=new int[10];
System.out.print("产生的随机数是:");
for(int i=0;i<list.length;i++){
int num=(int)(100*Math.random());
list[i]=num;
System.out.print(list[i]);
System.out.print(" " );
}
System.out.println();

System.out.print("排序后的数为:");
int k,j,temp;
for( k=0;k<list.length;k++)
{
for( j=0;j<list.length ;j++)
{
if(list[k]<list[j])
{
temp=list[k];
list[k]=list[j];
list[j]=temp;
}

}

}
for(int i=0;i<list.length;i++)
{
System.out.print(list[i]);
System.out.print(" ");
}

}


}
haojia0716 2009-09-28
  • 打赏
  • 举报
回复
我这个 生成0-10的随机数 没有重复数据

然后用类库方法排序


public class T {
public static void main(String[] args) {
Random r = new Random();
int[] data = new int[11];
boolean[] state = new boolean[11];
for (int i = 0; i < data.length; i++) {
int t = r.nextInt(11);
while (state[t]) {
t = r.nextInt(11);
}
state[t] = true;
data[i] = t;
}
System.out.println(Arrays.toString(data));

Arrays.sort(data);

System.out.println(Arrays.toString(data));
}
}
jerry313 2009-09-28
  • 打赏
  • 举报
回复
隐晦的求作业帖吗
Random r = new Random();
int[] array = new int[10];
for(int i=0;i<array.length;i++){
array[i] = r.nextInt(11);
}
for(int i=0;i<array.length;i++) {
System.out.print(array[i] + " ");
}
System.out.println();
Arrays.sort(array);
for(int i=0;i<array.length;i++) {
System.out.print(array[i] + " ");
}
justinavril 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 swandragon 的回复:]
Java codeprivatevoid sort(){int[] iArray=newint[10];
Random random=new Random();for(int i=0;i< iArray.length;i++){
iArray[i]= random.nextInt(10);
}
System.out.print¡­
[/Quote]
用插排挺好的

不过直接用Arrays.sort更爽些 哈哈~~
老紫竹 2009-09-28
  • 打赏
  • 举报
回复
swandragon 2009-09-28
  • 打赏
  • 举报
回复

private void sort(){
int[] iArray = new int[10];
Random random = new Random();
for(int i = 0;i < iArray.length;i++){
iArray[i] = random.nextInt(10);
}
System.out.println("排序前");
printArray(iArray);
insertSort(iArray,"asc");
System.out.println("升序排序后");
printArray(iArray);
insertSort(iArray,"desc");
System.out.println("降序排序后");
printArray(iArray);
}

private void insertSort(int[] data,String sortType){
if(sortType.equals("asc")){ // 正排序,从小排到大
// 比较的轮数
for(int i = 1;i < data.length;i++){
// 保证前i+1个数排好序
for(int j = 0;j < i;j++){
if(data[j] > data[i]){
// 交换在位置j和i两个数
swap(data,i,j);
}
}
}
}else
if(sortType.equals("desc")){ // 倒排序,从大排到小
// 比较的轮数
for(int i = 1;i < data.length;i++){
// 保证前i+1个数排好序
for(int j = 0;j < i;j++){
if(data[j] < data[i]){
// 交换在位置j和i两个数
swap(data,i,j);
}
}
}
}else{
System.out.println("您输入的排序类型错误!");
}
}

/**
* 打印数组
* @param obj
*/
private void printArray(int[] obj){
for(int i = 0;i < obj.length;i++){
System.out.print(obj[i] + "\t");
}
System.out.println();
}

/**
* 交换数组中指定的两元素的位置
*
* @param data
* @param x
* @param y
*/
private void swap(int[] data,int x,int y){
int temp = data[x];
data[x] = data[y];
data[y] = temp;
}
imasmallbird 2009-09-28
  • 打赏
  • 举报
回复

public class Test {

public static void main(String[] args) {
// 从1000的范围内取得10个不重复的随机数
int[] testNumbers = getRandomNumbers(1000, 10);
// 显示排序前的
System.out.println("排序前的数组:");
displayNumbers(testNumbers);
// 排序
Arrays.sort(testNumbers);
// 显示排序后的
System.out.println("排序后的数组:");
displayNumbers(testNumbers);

}

/**
* @param numbers 要显示的数组
*/
public static void displayNumbers(int[] numbers) {
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + "\t");
}
System.out.println();
}

/**
* @param:sumNum 要生成的数的范围
* @param:num 生成的个数
* @return int[] 返回生成的不重复的随机数组
*/
public static int[] getRandomNumbers(int sumNum, int num) {
int returnValue[] = null;
if (num <= sumNum) {
returnValue = new int[num];
Random r = new Random();

int temp1, temp2;
// 生成范围数组
int send[] = new int[sumNum];
int len = send.length;
for (int i = 0; i < len; i++) {
send[i] = i + 1;
}

for (int i = 0; i < num; i++) {
temp1 = Math.abs(r.nextInt()) % len;
returnValue[i] = send[temp1];
temp2 = send[temp1];
send[temp1] = send[len - 1];
send[len - 1] = temp2;
len--;
}
}
return returnValue;
}
}
liujiaqiid 2009-09-28
  • 打赏
  • 举报
回复
Random类 随机生成数字。。。。。
排序用数组暂存....
amdgaming 2009-09-28
  • 打赏
  • 举报
回复
///////////////

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧