冒泡,插入,选择排序
2016-07-29 11:59
190 查看
经典的排序算法,此文章介绍三个
冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
插入排序:插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中
选择排序:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
运行主函数::
冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
public void bubblesort(int[] A) { if(null==A||A.length<2) return; int temp; //保存临时变量 boolean iswrap=true; //是否还要继续冒泡 do { iswrap=false; for(int i=1;i<A.length;i++) { if(A[i-1]>A[i]) //如果发生了交换,则将标识设为真,继续循环 { temp=A[i-1]; A[i-1]=A[i]; A[i]=temp; iswrap=true; } } } while(iswrap); for(int i=0;i<A.length;i++) { System.out.print(A[i]); } return; }
插入排序:插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中
public void insertsort(int[] A) { if(null==A||A.length<2) return; int temp; for(int i=1;i<A.length;i++) //从下标为的元素开始循环数组 { for(int j=i;j>0;j--) { if(A[j]<A[j-1]) //开始元素与前一个元素比较,小于则交换,与冒泡排序相似 { temp=A[j]; A[j]=A[j-1]; A[j-1]=temp; } } } for(int i=0;i<A.length;i++) { System.out.print(A[i]); } return; }
选择排序:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
public void Selectsort(int[] A) { // Write your code here if(null==A||A.length<2) return; int mixinteger; int temp; for(int i=0;i<A.length;i++) { mixinteger=i; for(int j=i+1;j<A.length;j++) { if(A[mixinteger]>A[j])//如果无序区的元素比有序区小则交换元素 { mixinteger=j; } } if(mixinteger!=i)//如果最小的元素下标不为原来的值则交换元素 { temp=A[i]; A[i]=A[mixinteger]; A[mixinteger]=temp; } } for(int i=0;i<A.length;i++) { System.out.print(A[i]); } return; }
运行主函数::
public class Solution { public static void main(String[] arg) { Algorithm al=new Algorithm(); int A[]={5,8,7,4,1}; al.insertsort(A); al.bubblesort(A); al.Selectsort(A); } }
相关文章推荐
- 五种排序方法(选择、冒泡、快排、插入、希尔)
- java 关于插入,冒泡,选择排序标准示例
- c语言排序实例(选择、冒泡、插入、折半、快速)
- 排序算法总结(一)——冒泡、插入、希尔与选择排序
- 8大排序之----冒泡,直接插入,选择排序
- Daily 排序之冒泡、选择、插入
- 冒泡、插入、选择排序及其改进
- 数据结构与算法之基础排序(冒泡/插入/选择)<十>
- Java数组排序(冒泡,选择,插入,希尔)
- 三种低级排序方法(冒泡 选择 插入)
- 排序1-冒泡,选择和插入
- 冒泡插入选择排序解析以及信号量机制
- 排序again(冒泡、选择、插入)
- 排序方法之冒泡(鸡尾酒)、选择、插入(二分插入)、希尔排序
- 排序总结:插入(简单和改进)、希尔、选择、冒泡、快速、堆排序、归并排序
- Java中实现简单的三大排序——冒泡、选择、插入
- 数据结构各种排序法及核心思想(冒泡、鸡尾酒、选择、插入、二分法、希尔、堆、归并、快速)
- 学生成绩排序(直接插入,冒泡,快排,选择,堆排,2路归并)
- 算法-链表排序(冒泡、选择、插入)
- php -- 四种基础排序:冒泡、选择、插入、快速