java基础学习--排序算法
2012-03-16 21:36
302 查看
选择排序:让第一个跟后面的每个元素比较,如果大于则交换量元素的位置,第二次则让第二个元素跟后面的元素一次比较(因为第一个元素的位置已经定了),一次类推直到最后一个元素.代码:public class TestChoose { public static void main(String[] args) { int[] arr = {8,3,67,43,21,56,78}; choose(arr); printArray(arr); } public static void choose(int[] arr){ int temp = 0; for(int i = 0;i < arr.length;i ++){ for(int j = i+1;j < arr.length;j ++){ if(arr[i]>arr[j]){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } public static void printArray(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); }}当if(arr[i]>arr[j])时:为升序排列if(arr[i]<arr[j])时:为降序排列冒泡排序:每次相邻的两个元素的相比较,每次相比大的放后面,每次比完以后最大的元素就确定 了,然后在从第一个元素开始,每相邻的两个元素之间的比较代码: public static void bubbleSort(int[] arr){ int temp = 0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length -i -1; j++) { if(arr[j]>arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } }对上面中arr.length-x-1说明 -x 是为了每次少比一次,每次比完以后最后的那个元素位值就确定了,所以没有必要再比-1 是防止数组越界,当我i=0的事,j最后一次就是arr.length,如果不减1,则会出现数组访问越界
把上面的代码中的choose(arr)改成bubbleSort(arr)可以测试冒泡排序的算法
本文出自 “java技术” 博客,请务必保留此出处http://ibill.blog.51cto.com/2210057/808155
把上面的代码中的choose(arr)改成bubbleSort(arr)可以测试冒泡排序的算法
本文出自 “java技术” 博客,请务必保留此出处http://ibill.blog.51cto.com/2210057/808155
相关文章推荐
- Java基础学习总结(60)——Java常用的八种排序算法
- java基础学习--排序算法
- 黑马程序员_java基础学习笔记之排序算法(选择排序、冒泡排序
- Java基础学习总结(28)——Java对各种排序算法的实现
- Java基础学习总结(60)——Java常用的八种排序算法
- Java基础学习总结(28)——Java对各种排序算法的实现
- 2017/12/30Java基础学习——排序算法の选择法与冒泡法的比较
- Java基础学习总结(28)——Java对各种排序算法的实现
- Java基础学习10(二维数组)
- JAVA基础18天速成学习笔记之第三天
- [java基础学习]04——Java基础语法(三)
- Java基础学习笔记四 Java基础语法
- Java基础学习笔记二十 IO流
- java基础学习总结——接口
- 学习java基础教程收获四
- java学习【web基础-JSP入门】
- JAVA基础学习---- 多态实例(1)
- 学习Spring必学的Java基础知识
- Java基础学习总结(63)——Java集合总结
- 2.Java学习框架(零基础学起)