我这个怎么也没有搞出来请帮帮忙!算法是我的最大弱点!我现在正在搞这个真的好头通
我知道是我的三个数交换那里出的问题该怎么该咯!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class li{
public static void main(String args[]) {
String s = " ";
int n[] = new int[10];
int i;
int min = 0;
int t;
for (i = 0; i < n.length; i++) {
s = JOptionPane.showInputDialog("请输入" + (i + 1) + "个数");
n[i] = Integer.parseInt(s);
}
for(i=0;i<n.length ;i++){
min=n[0];
if(n[i]<min)
min=n[i];
t=min;
n[i]=t;
System.out.println();
}
}
}
我知道是我的三个数交换那里出的问题该怎么该咯!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class li{
public static void main(String args[]) {
String s = " ";
int n[] = new int[10];
int i;
int min = 0;
int t;
for (i = 0; i < n.length; i++) {
s = JOptionPane.showInputDialog("请输入" + (i + 1) + "个数");
n[i] = Integer.parseInt(s);
}
for(i=0;i<n.length ;i++){
min=n[0];
if(n[i]<min)
min=n[i];
t=min;
n[i]=t;
System.out.println();
}
}
}
import java.awt.event.*;
import javax.swing.*;
public class li{
public static void main(String args[]) {
String s = " ";
int n[] = new int[10];
int i;
int min = 0;
int t;
for (i = 0; i < n.length; i++) {
s = JOptionPane.showInputDialog("请输入" + (i + 1) + "个数");
n[i] = Integer.parseInt(s);
}
for(i=1;i<n.length-1 ;i++){
for(int j=0;j<n.length-i;j++) {
int temp ;
if(n[j]>n[j+1]){
temp = n[j];
n[j] = n[j+1];
n[j+1] =temp;
}
}
}
}
/////////////////////基础要打好啊
import java.security.InvalidParameterException;public class Sort {
public final static int NON_DESCENDING = 0; public final static int NON_ASCENDING = 1; private static boolean cmp(int i, int j, int type) {
if (type == NON_DESCENDING)
return i > j;
if (type == NON_ASCENDING)
return i < j;
throw new InvalidParameterException(); } private static void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
} public static void chooseSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (cmp(array[i], array[j], NON_DESCENDING)) {
swap(array, i, j);
}
}
}
} public static void main(String[] args) {
int[] test = new int[] { 43, 23, 1, 42, 3, 1, 4, 3, 2, 4, 2, 3, 4, 2,
1, 4, 2, 3, 4, 3 };
Sort.chooseSort(test);
show(test);
} public static void show(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
} }}
public class li{
public static void main(String args[]) {
String s = " ";
int i = 0, j = 0, t = 0;
int n[] = new int[10];
for (i = 0; i < n.length; i++) {
s = JOptionPane.showInputDialog("请输入第" + (i + 1) + "个数");
n[i] = Integer.parseInt(s);
}
for (i = 0; i < n.length; i++) {
for (j = i; j < n.length; j++) {
if(n[i]>n[j]){
t=n[i];
n[i]=n[j];
n[j]=t;
}
}
System.out.println(n[i]);
}
}
}
选择排序如下:
public class Sort{
public static void main(String args[]){
int[] array ={4,1,15,34,24};
int i,j,k;
for(i = 0;i < array.length-1;i++){
k = i;
for(j = i+1;j< array.length;j++)
{
if(array[j] < array[i])
k = j;
}
if(k != i){
int temp = array[k];
array[k] = array[i];
array[i] = temp;
}
}
for(int m = 0;m < array.length;m++)
System.out.print("\t"+array[m]);
}
}
调试通过!
另冒泡排序中加入一个判断是否已经排好序的boolean 型变量.
若已排好序,设为true,退出循环,提高效率.