java快速排序-自己的总结
来源:互联网 发布:大数据时代马云 编辑:程序博客网 时间:2024/05/17 22:49
需求是创建一些乱序的数组,然后使用选择排序来进行排序,
上学就学过的基本方法但是从没有好好跟过代码的运行过程,
所以决定勤奋一次,并且把每个地方都仔细的写下解释。
public class maopao1 {
//选择排序
public static void main(String[] args)
{
int[] num=new int[10]; //创建一个长度为10的数组,现在数组内没有任何内容只是开辟了需要的内存空间,ps:new出的值存放在堆中!。
for(int i=0;i<10;i++){
num[i]=(int)(Math.random()*100)+1; //使用random方法创建随机数,*100是为了控制范围,+1是因为random是从0开始的,本次数组不要0!
}
selectSort(num);
for(int i=0;i<10;i++)
{
System.out.print(number[i]+",");
}
}
public static void selectSort(int[] number)
{
for(int i=0;i<number.length-1;i++) //第一次循环取第一个数拿出来跟第二次循环取出来的数相比,至于为什么要length-1,是因为j比i大一个,当i循环到 //倒数第二位时,j已经是最后一位了,所以不需要将i循环到最后一位了,已经比较过了,不需要再比较了
{System.out.println("第"+i+"圈"); //监控到走到第几次循环了,
int a=i; //定义一个a值等于i,
for(int j=i+1;j<number.length;j++) //将j定义时比i大一个,是因为两个数如果都是从下脚标的0位开始取,就会取到相同的数字了,没有比较的意义了
{
if(number[j]<number[a]) //判断下脚标j对应的数据如果小于下脚比i对应的数据,则把j赋值给a。
{
a=j;
}
System.out.println("j="+j);
System.out.println("m="+m);
//程序运行时由于在次层循环中是i不变j变大,所以会导致j不断的赋值给a,但是只会把越来越小的值赋值给a,所以最后赋值那个一定是最小的那个。
//将最大或者最小的那个一个数字一次查找出来,
//再次进行遍历的时候就可以少遍历一行了,//举例,第一次查询所有,第二次就查询所有减1,第三次查询所有减2,以此类推
}
if(i!=a)
{
swap(number,i,a);//对应下脚标的数字互换位置
}
}
}
//数组内的两个数字做互换位置的方法。
public static void swap(int[] number,int i,int j)
{
int t;
t=number[i];
number[i]=number[j];
number[j]=t;
}
}
0 0
- java快速排序-自己的总结
- 自己用java写的快速排序
- java快速排序总结
- Java快速排序总结
- 自己写的快速排序
- 总结的快速排序
- JAVA的快速排序
- Java的快速排序
- 自己关于排序的总结
- 快速排序法的总结
- 自己整理的快速排序算法
- 自己实现的一个高效快速排序: )
- 快速排序 我自己写的
- 自己写的一个快速排序
- 自己写的一个快速排序
- 自己写的递归快速排序(c++)
- 自己实现快速排序
- 快速排序算法归纳总结-java
- tensorflow笔记:多层CNN代码分析
- CSS之【基础的2D转换模块】
- Ubuntu 14.04下 Hadoop3.0-alpha 的安装
- Linux下JDK、Tomcat的安装及配置
- LeetCode刷题【Array】 Max Consecutive Ones
- java快速排序-自己的总结
- iOS中设计模式
- 2016年9月 javaweb实训项目
- selenium对Alert弹框的多种处理
- 图像局部显著性—点特征(Fast)
- ubuntu 下搜狗输入法不能输入中文解决
- java 调用oracle中存储过程与调用function函数两例
- python实现自动更换ip的方法
- tensorflow笔记:多层LSTM代码分析