(一)选择排序
选择排序是一个简单直观的排序算法,无论什么数据使用选择排序时间复杂度都是O(n²).所以使用选择排序的时候,数组规模越小越好,唯一的好处可能就是不占用额外的内存空间吧.
1.排序过程
1)首先使用角标为0的元素依次和后面的角标对应的元素进行比较,第一次比较完角标为0对应的元素为最小(最大)值.
2)从角标为1的元素开始,再依次和后面角标对应的元素进行比较,第二次比较完角标为1处的元素就是次小(次大)值.
3)重复执行上述步骤…依次进行比较,就可以得到一个从小到大(从大到小)排序好的数组.
public class Sort {
public static void main(String[] args) {
int a [] = new int[]{16,10,5,30,50,20};
//排序前,先把内容打印出来
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(" ");
System.out.println("--------------------------------");
//选择法排序
//第一步: 把第一位和其他所有位进行比较
//如果发现其他位置的数据比第一位小,就进行交换
for (int i = 1; i < a.length; i++) {
if(a[i]<a[0]){
int temp = a[0];
a[0] = a[i];
a[i] = temp;
}
}
//把内容打印出来
//可以发现,最小的一个数,到了最前面
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(" ");
//第二步: 把第二位的和剩下的所有位进行比较
for (int i = 2; i < a.length; i++) {
if(a[i]<a[1]){
int temp = a[1];
a[1] = a[i];
a[i] = temp;
}
}
//把内容打印出来
//可以发现,倒数第二小的数,到了第二个位置
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(" ");
System.out.println("--------------------------------");
//可以发现一个规律
//移动的位置是从0 逐渐增加的
//所以可以在外面套一层循环
for (int j = 0; j < a.length-1; j++) {
for (int i = j+1; i < a.length; i++) {
if(a[i]<a[j]){
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
//把内容打印出来
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(" ");
}
}
输出结果如下所示:
(二)JavaSE学习心得
不知不觉已经学习Java SE三个周了,从helloword到现在常用类的学习,Java基础部分马上就要结束了。下面谈一谈我的学习感受。
首先呢学语言,就记住一个点:敲!敲!敲!学这方面最禁忌的大概就是眼高手低了,学习的时候总觉得自己已经懂了,但是实际去写代码的时候,却总会遇到各种小问题,总会有无从下手的时候。所以,当我们学完知识点之后,一定要动手去写,不管是仿写已有的列子,还是自己去编写测试,都要不断的去重复,有时候你听不懂的东西,可能在写代码的过程中就能体会到其中的含义和功能。因此,学习语言一定要调整好自己的学习节奏,及时解决不懂的问题,不能遗留,毕竟万丈高楼平地起,现在正是打好基础的阶段,一定要努力消化,努力吸收。
当然,实际情况因人而异,每个人的码字速度就参差不齐,或者每个人精力旺盛程度和注意力集中度不同,都会对学习效率产生很大的影响。有些人可能每天只睡五六个小时,仍然是精神满满,思维迅捷,但是有些人可能素质本身不够好,每天容易犯困,注意力难以高度集中。而学习语言是也算是一门体力活,所以学习的时候,毕竟身体才是革命的本钱。
总而言之,学习就是要脚踏实地,欲速则不达,学习的过程中一定不能心急,要做好计划。同时,好记性不如烂笔头,对于自己不懂的概念和逻辑,及时记录,之后一定要去解决这些问题,对于不懂的问题,可以向论坛,贴吧的大神进行请教,或者找身边懂技术的人,因此,学习过程中向他人请教也是很重要的一点,有时候,向他人请教的同时,可能会让自己眼前一亮,学习到更好的实习方法。
up!up!up!