答:用插入法进行排序代码如下
import java.util.*;
class InsertSort { ArrayList al;
public InsertSort(int num, int mod) { num = Math.abs(num); al = new ArrayList(num); Random rand = new Random(); System.out.println("The ArrayList Sort Before:"); for (int i = 0; i < num; i++) { al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1)); System.out.println("al[" + i + "]=" + al.get(i)); } }
public void SortIt() { Integer tempInt; int MaxSize = 1; for (int i = 1; i < al.size(); i++) { tempInt = (Integer) al.remove(i); if (tempInt.intValue() >= ((Integer) al.get(MaxSize - 1)) .intValue()) { al.add(MaxSize, tempInt); MaxSize++; System.out.println(al); } else { for (int j = 0; j < MaxSize; j++) { if (((Integer) al.get(j)).intValue() >= tempInt.intValue()) { al.add(j, tempInt); MaxSize++; System.out.println(al); break; } } } } System.out.println("The ArrayList Sort After:"); for (int i = 0; i < al.size(); i++) { System.out.println("al[" + i + "]=" + al.get(i)); } }
public static void main(String[] args) { System.out.println("用插入法进行排序代码如下"); Scanner scanner = new Scanner(System.in); int[] i = new int[2];
try { i[0] = scanner.nextInt(); i[1] = scanner.nextInt(); } catch (Exception e) { i[0] = i[1]; scanner.close(); } InsertSort is = new InsertSort(i[0], i[1]); is.SortIt();
} }