黑马程序员--冒泡排序和选择排序的区别
2014-06-25 19:34
204 查看
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
代码如下:
public class nums {
public static void main(String[] args){
int []nums = {5,4,3,2,1};
for(int i = 0; i < nums.length; i++){
for(int j = 0; j < nums.length-i-1; j++){
if(nums[j] > nums[j+1]){
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
for(int x = 0;x < nums.length;x++){
System.out.print(nums[x]+",");
}
System.out.print("\n");
}
}
}
每一轮比较后的输出如下:
从输出中可以很清楚的明白冒泡排序的算法流程。
选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
代码如下
public class nums {
public static void main(String[] args){
int []nums = {5,4,3,2,1};
for(int i = 0; i < nums.length; i++){
for(int j = i+1; j < nums.length; j++){
if(nums[i] > nums[j]){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
for(int x = 0;x < nums.length;x++){
System.out.print(nums[x]+",");
}
System.out.print("\n");
}
}
}
从代码中可以看出每轮比较中,nums[i]和数组中的每个元素都有作比较。
每一轮比较后的输出如下:
从输出结果中还是很容易看出它与冒泡排序在算法上的区别。
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
代码如下:
public class nums {
public static void main(String[] args){
int []nums = {5,4,3,2,1};
for(int i = 0; i < nums.length; i++){
for(int j = 0; j < nums.length-i-1; j++){
if(nums[j] > nums[j+1]){
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
for(int x = 0;x < nums.length;x++){
System.out.print(nums[x]+",");
}
System.out.print("\n");
}
}
}
每一轮比较后的输出如下:
4,3,2,1,5, 3,2,1,4,5,
2,1,3,4,5, 1,2,3,4,5, 1,2,3,4,5,
从输出中可以很清楚的明白冒泡排序的算法流程。
选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
代码如下
public class nums {
public static void main(String[] args){
int []nums = {5,4,3,2,1};
for(int i = 0; i < nums.length; i++){
for(int j = i+1; j < nums.length; j++){
if(nums[i] > nums[j]){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
for(int x = 0;x < nums.length;x++){
System.out.print(nums[x]+",");
}
System.out.print("\n");
}
}
}
从代码中可以看出每轮比较中,nums[i]和数组中的每个元素都有作比较。
每一轮比较后的输出如下:
1,5,4,3,2,
1,2,5,4,3, 1,2,3,5,4, 1,2,3,4,5, 1,2,3,4,5,
从输出结果中还是很容易看出它与冒泡排序在算法上的区别。
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员----Java中几种常用排序算法(选择排序、冒泡排序、快速排序)
- 黑马程序员 03选择排序,冒泡排序,折半查找
- 冒泡排序和选择排序区别
- 冒泡排序、选择排序的区别
- 冒泡排序和选择排序区别
- 黑马程序员————冒泡排序、选择排序、二分法查找
- 黑马程序员——数组练习(冒泡排序,选择排序)
- 黑马程序员_C语言基础_数组之冒泡排序、快速选择排序、折半查找
- 黑马程序员——c语言基础:冒泡排序、选择排序和折半查找
- 冒泡排序和选择排序的区别
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- 黑马程序员-数组排序-选择排序与冒泡排序
- 黑马程序员---冒泡排序和选择排序
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
- 黑马程序员_关于选择排序和冒泡排序的复习
- 黑马程序员—数组最大值、最小值、选择排序、冒泡排序
- 选择排序和冒泡排序的区别
- 冒泡排序,选择排序,插入排序的区别
- 黑马程序员---冒泡排序和选择排序的理解
- 选择排序和冒泡排序区别以及冒泡排序优化