【java学习】排序_冒泡排序+选择排序
来源:互联网 发布:东海证券交易软件下载 编辑:程序博客网 时间:2024/06/14 09:17
分类
稳定排序(相同元素在排序前后相对位置不改变)和不稳定排序(反之)
稳定排序:冒泡排序 插入排序 归并排序 二叉树排序
非稳定排序:选择排序 希尔排序 堆排序 快速排序排序思想
【冒泡排序】
假设排序要求是升序排列,元素总数为sum,那么冒泡排序就是经过(sum-1)次排序,每次排序,相邻的两个元素相互比较,后面的元素小的话就彼此交换位置,这样最大的元素就移动到了最后,每次找到最大值后,下一次需要查找的范围就会减一。这样,直到剩下最后一个元素排序完成。
这个算法的时间复杂度是O(n*n)
【选择排序】
假设排序要求是升序排列,元素总数为sum,那么选择排序就是经过(sum-1)次排序,每次排序,较大的数都会和待排序数组的第一个元素交换位置,这样一次排序的结果就是将第一个元素和最大的元素交换位置,每次排序后下一次查找的范围减一。找到最后的一个元素就是最大的了,此时排序完成。
这个算法的时间复杂度是O(n*n)- 代码
【冒泡排序】
package bubble;import java.util.Arrays;// 冒泡排序public class BubbleDemo { public static void main(String[] args) { // TODO Auto-generated method stub int[] arrays={1,2,5,4,7,9,8,6,5,6}; // 进行选择的范围 for(int i=arrays.length-1;i>0;i--){ for(int j=0;j<i;j++){ if(arrays[j]>arrays[j+1]){ // 交换 int temp=0; temp=arrays[j]; arrays[j]=arrays[j+1]; arrays[j+1]=temp; } } } // 打印结果 System.out.println(Arrays.toString(arrays)); }}
【选择排序】
package choose;import java.util.Arrays;// 选择排序public class ChooseDemo { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr={1,3,5,34,6,7,8}; // 选择的次数 for(int i=0;i<arr.length-1;i++){ // 比较的范围 for(int j=i+1;j<arr.length;j++){ // 交换 if(arr[i]>arr[j]){ int temp=0; temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } System.out.println(Arrays.toString(arr)); }}
[ 理解]
冒泡排序和选择排序非常相似,时间复杂度一样,但是不同在于排序过程中的细节,冒泡是在每一次排序结束后,才给最大值位置赋值,而选择排序是在每一次排序中每一次比较(有更大的值)时给最小值位置赋值。
0 0
- 【java学习】排序_冒泡排序+选择排序
- 选择排序_冒泡排序
- 排序学习_冒泡排序
- JAVA 冒泡排序 选择排序
- Java--选择排序,冒泡排序
- java冒泡排序,选择排序
- JAVA--冒泡排序、选择排序
- [Java]冒泡排序、选择排序
- java冒泡排序,选择排序
- Java冒泡排序,插入排序,选择排序
- java冒泡排序,选择排序,插入排序
- [JAVA]选择排序,插入排序,冒泡排序
- java-------冒泡排序,选择排序,插入排序
- java 冒泡排序 插入排序 选择排序
- Java冒泡排序,插入排序,选择排序
- 选择_冒泡 排序法
- 01_选择排序和冒泡排序
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- JS中数组的操作
- maven学习3-建立Web工程
- 微信开源的 Android 热补丁框架 Tinker 什么来头?
- 原根(详解+代码实现+例题+快速求解一个数的原根)
- LeetCode 94. Binary Tree Inorder Traversal 解题报告
- 【java学习】排序_冒泡排序+选择排序
- 3-7 类的友元函数的应用
- 用gnuplot画图,扔latex里面。一个简单的例子。
- OpenCV学习笔记(一):使用CascadeClassifier识别人脸
- Tolua使用笔记二:lua与C#的函数,变量交互方法
- Python中基础知识
- C语言学习——第一篇博客 (一)
- 旅行 jzoj 1281
- ViewPager详解(一)