本帖最后由 淡忘初学者 于 2015-8-25 17:37 编辑
以下内容基于张孝祥老师视频课程笔记:
在帖子里面看到有人对于数组排序操作不是十分了解,正巧我回看笔记看到了这里,所以又发一帖啦~~希望能帮助到大家,一起进行回顾(程序都是我刚写的哦!)。- import java.util.Arrays;
- public class ArrayDemo {
- public static void main(String[] args) {
- int[] arr=new int[]{12,31,53,11,7,101};
- //调用java提供的方法由小到大排序:
- Arrays.sort(arr);
- print(arr);
- //调用自定义的选择排序方法:
- selectSort(arr);
- print(arr);
- //调用自定义的冒泡排序方法:
- bubbleSort(arr);
- print(arr);
- }
- /*
- * 定义选择排序:由大到小排(也可选择由小到大排)
- * 从第一位开始比,每次比取出此轮最大值放在此轮首位
- * 每次相比位数逐次递减(因为第一次排出的第一位肯定
- * 是数组里的最大值,第二轮就不需要再比)
- */
- public static void selectSort(int[] arr){
- for(int x=0;x<arr.length-1;x++){//使用循环嵌套
- for(int y=x+1;y<arr.length;y++){
- if(arr[x]<arr[y]){//每比一轮,便取出此轮最大值放在最前
- int max=arr[y];
- arr[y]=arr[x];
- arr[x]=max;
- }
- }
- }
- }
- /*
- * 定义冒泡排序:相邻两个元素之间比较,每比一轮,最大值出现在
- * 此轮的最后一位,每轮相比位数从高位向低位逐一递减
- * 就像冒泡泡一样,最大的泡泡浮力最大,总是最先出现在最上面,在这之后,泡泡鼓出的大小依次递减
- */
- public static void bubbleSort(int[] arr){
- for(int x=0;x<arr.length-1;x++){//总共比arr.length-1轮
- for(int y=0;y<arr.length-1-x;y++){//每轮相比位数逐次递减
- if(arr[y]>arr[y+1]){//相邻两者之间比较
- int min=arr[y+1];
- arr[y+1]=arr[y];
- arr[y]=min;
- }
- }
- }
- }
- public static void print(int[] arr){//打印遍历数组
- System.out.print("遍历的数组为:[");
- for(int x=0;x<arr.length;x++){
- if(x<arr.length-1)
- System.out.print(arr[x]+",");
- else
- System.out.println(arr[x]+"]");
- }
- }
-
- }
复制代码 运行结果:
后面我会发每章节回顾的程序,如果你们觉得有可看性的话就继续关注吧~~谢谢各位了。
|