这学期学校开了面向对象程序设计这门课,教的是java,从前的学的c语言是面向过程的程序语言,与之想必自然就有了较大的区别,借着做实验作业,记录一下过程。
目录
实验要求:根据用户输入的10个数值,自己写排序算法进行升序排列并输出排序后的结果。
实验要求:
根据用户输入的10个数值,自己写排序算法进行升序排列并输出排序后的结果。
不难看出,虽然java中可以调用sort库来进行排序,但是手写一个简单的排序算法可以更好的掌握循环的用法
实验代码:
import java.util.Scanner;
class Sort{
//成员变量
int [] ans = new int [10];
int N=0;
int i,j,temp;
//成员方法
public void init(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入数值:");
for(int i=0;i<10;i++){
ans[i] = sc.nextInt();
}
}
public void sort(){
for(i=0;i<10;i++){//遍历数组
for(j=i;j<10;j++){//按照大小关系交换数组成员
if(ans[i]>ans[j]){
temp =ans[i];
ans[i] = ans[j];
ans[j] = temp;
}
}
}
}
public void cout(){
for(i=0;i<10;i++){
System.out.print(ans[i]);
}
}
}
由于这个功能是记事本写的(心虚),所以需要创建一个test来调用这里的函数
public class TestSort{
public static void main(String [] args){
Sort so = new Sort();
so.init();
so.sort();
so.cout();
}
}
实验截图
用命令提示符编译运行一下看看结果如何
看来效果不错。
当然这版代码还有很大的改进空间,包括但不限于排序复杂度的改进,可读性的改进等,在此就权做抛砖引玉了。