本帖最后由 maxwell247 于 2015-9-26 22:09 编辑
从网上找到一份编程练习题,我决定将里面的题目全都做一遍。
---
/*
题目:对10个数进行排序
*/
/*
分析:排序的算法有好多种。冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,桶排序,快速排序,基数排序,归并....
然而,我只会两种。这里就用选择排序了。看来要尽快把其他排序学会。或者把Arrays.sort()的源码看懂。
对于数组中的数据,使用Random生成10个1000之间的整数。
*/
import java.util.Random;
class SelectSortDemo {
public static void main(String[] args) {
int[] arr=new int[10];
Random random=new Random();
for (int i=0; i<10; i++){
arr=random.nextInt(1000)+1; //生成 1-1000之间的随机数
}
System.out.println("------------排序前-----------");
printArray(arr);
SelectSort(arr);
System.out.println("------------排序后-----------");
printArray(arr);
}
public static void SelectSort(int[] arr){
for (int i=0; i<arr.length-1; i++){
for(int j=i+1; j<arr.length; j++){
if(arr>arr[j]){
swap(arr,i,j);
}
}
}
}
private static void swap(int[] arr,int i,int j){
int temp=arr;
arr=arr[j];
arr[j]=temp;
}
public static void printArray(int[] arr){
for(int element:arr){
System.out.print(element+"\t");
}
System.out.println();
}
}
/*
输出结果
------------排序前-----------
736 19 579 928 309 683 275 488 627 724
------------排序后-----------
19 275 309 488 579 627 683 724 736 928
*/
论坛发代码有问题。 自动识别 a 【i】变成斜体了。 如果你复制代码不能通过的,是正常的。
|
|