c++ java 选择排序,java 排序程序(sort) 选择排序 求程序

java 排序程序(sort) 选择排序 求程序

关注:224  答案:3  手机版

解决时间 2021-01-12 12:34

提问者时光盗走我的心

2021-01-11 18:56

java 画图画10个长方形,长度为随机数字 用选择排序(selection)排 最好在星期五之前

或帮忙看看我的选择排序程序部分有什么错也行,能帮我把插入排序(insertion)也写出来的加分!!!

谢谢各路大虾!!!

import java.util.Random;

import java.util.ArrayList;

import acm.program.*;

import acm.graphics.*;

import java.awt.*;

public class Sortline extends GraphicsProgram

{

private static final int MAX=100;

static ArrayList myRect=new ArrayList();

public void init()

{

fillArray(myRect);

for(int i=0; i

{

add(myRect.get(i));

}

}

public void run()

{

//bubbleSort(myRect);

selectionSort(myRect);

}

public void fillArray(ArrayListr)

{

int x=5;

int y=200;

int w=5;

int h=10 ;

Random rand=new Random();

for(int i=0; i

{

h=rand.nextInt(100)+5;

GRect myRect=new GRect(x,y,w,h);

myRect.setFilled(false);

myRect.setColor(Color.BLUE);

r.add(myRect);

x+=w;

}

}

public void swap( int p, int q)

{

int temp = p;

p = q;

q = temp;

}

public void selectionSort(ArrayListr)

{ GRect temp;

int count=1;

int p=0;

int q=0;

int smallest;

int size=r.size();

for(p=0; p

{ smallest=p;

GPoint P=r.get(p).getLocation();

GPoint Q=r.get(q).getLocation();

for(q=0;q>size-p; q--)

if (r.get(q).getHeight() < smallest)

smallest=q;

if (r.get(p).getHeight() != smallest)

{swap(p,smallest);

temp=r.get(p);

r.set(p,r.get(q));

r.set(q,temp);

pause(25);

r.get(p).setLocation(P);

r.get(q).setLocation(Q);

}

}

r.get(p).setVisible(true);

r.get(q).setVisible(true);

}

public static void main(String [] args)

{

new Sortline().start(args);

}

}

最佳答案

二级知识专家暖心欧巴

2021-01-11 20:00

public class Test {

public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 预设数据数组

public static void main(String args[]) {

int i; // 循环计数变量

int Index = a.length;// 数据索引变量

System.out.print("排序前: ");

for (i = 0; i < Index - 1; i++)

System.out.printf("%3s", a);

System.out.println("");

SelectSort(Index - 1); // 选择排序

// 排序后结果

System.out.print("排序后: ");

for (i = 0; i < Index - 1; i++)

System.out.printf("%3s", a);

System.out.println("");

}

public static void SelectSort(int Index) {

int i, j, k; // 循环计数变量

int MinValue; // 最小值变量

int IndexMin; // 最小值索引变量

int Temp; // 暂存变量

for (i = 0; i < Index - 1; i++) {

MinValue = 32767; // 目前最小数值

IndexMin = 0; // 储存最小数值的索引值

for (j = i; j < Index; j++) {

if (a[j] < MinValue) // 找到最小值

{

MinValue = a[j]; // 储存最小值

IndexMin = j;

}

Temp = a; // 交换两数值

a = a;

a = Temp;

}

System.out.print("排序中: ");

for (k = 0; k < Index; k++)

System.out.printf("%3s", a[k]);

System.out.println("");

}

}

}

全部回答

1楼風聲提筆

2021-01-11 22:18

public void selectSort(int[] data, String sortType) {

if (sortType.equals("asc")) { //正排序,从小排到大

int index;

for (int i = 1; i < data.length; i++) {

index = 0;

for (int j = 1; j <= data.length - i; j++) {

if (data[j] > data[index]) {

index = j;

}

}

//交换在位置data.length-i和index(最大值)两个数

swap(data, data.length - i, index);

}

} else if (sortType.equals("desc")) { //倒排序,从大排到小

int index;

for (int i = 1; i < data.length; i++) {

index = 0;

for (int j = 1; j <= data.length - i; j++) {

if (data[j] < data[index]) {

index = j;

}

}

//交换在位置data.length-i和index(最大值)两个数

swap(data, data.length - i, index);

}

} else {

System.out.println("您输入的排序类型错误!");

}

printArray(data);//输出直接选择排序后的数组值

}

2楼噯ㄖ詘,美

2021-01-11 21:04

3

我要举报

如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值