摘要: 冒泡排序是将相邻两个元素进行比较,如果是从前往后面开始那么进行一趟比较之后最轻或最最重的元素就在后面面了,然后前n-1个数再次比较,依次下去。//冒泡排序public class BubbleSort{ public void bubbleSort(int[] r,int low,int high) { int n=high-low+1; for(int i=1;ir[j+1]) { int temp=r[j]; r[j]=r[j+1]; ... 阅读全文
posted @ 2013-10-26 23:14 JMSXH 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 希尔排序是直接插入排序的改进版,它是将序列分组排序,但是位置不变,然后改变组数这样的话移动的位置就相对较少,以此改变步长,最后一个必须是1,也就是直接插入排序。//希尔排序public class ShellSort { public void shellSort(int[] r,int low,int high,int[] delta) { for(int k=0;k=low && temp<r[j];j=j-deltak) r[j+deltak]=r[j]; r[j+deltak]=temp;... 阅读全文
posted @ 2013-10-26 23:05 JMSXH 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 折半插入排序,是将待插入数首先与已排好序的中间位置数比较,如果大于中间数则将比较范围最低位置设置在中间位置的后一个数,以此循环比较找到正确插入的位置。//折半排序public class BinInsertSort{ public void binInsertSort(int[] r,int low,int high) { for(int i=low+1;ir[mid]) lo=mid+1; else hi=mid-1; } ... 阅读全文
posted @ 2013-10-26 22:49 JMSXH 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 插入排序是每一步都将一个待排序的数插入到以排序的数列的正确的位置,直到所有的数都排列好,在插入的过程中,首先与已排好序的最后一个位置进行比较,如果是插入中间位置,则从后往前依次比较找到要插入的正确位置,然后将插入位置的后面的元素向后移动一个位置,将待插入的位置插入。//直接插入排序public class InsertSort { public void insertSort(int[] r,int low,int high) { //从第二个元素开始依次插入 for(int i=low+1;i=low && r[j]>temp;j--) ... 阅读全文
posted @ 2013-10-26 22:34 JMSXH 阅读(136) 评论(0) 推荐(0) 编辑