浏览 1917 次
锁定老帖子 主题:两个排序算法--冒泡排序,选择排序
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-26
最后修改:2009-02-27
/* * 冒泡排序法 * 算法:第1趟排序找出对数组(array[0]--array[length-1])中最大的一个,把它放大array[length-1] * 第2趟排序找出对数组(array[0]--array[length-2])中最大的一个,把它放大array[length-2] * ...... * 第n趟排序找出对数组(array[0]--array[length-n])中最大的一个,把它放大array[length-n] */ @Test public void testBubbleSort() { //初始化数组 int[] lastArray = initArray; //外层循环lastArray.length-1次循环 for(int i=lastArray.length-1; i>0; i--) { //外层循环i次循环 for(int j=0; j<i; j++) { //当前面的数据大于后面的数据,把两个数据进行交换 if(lastArray[j] > lastArray[j+1]) { int tempInt = lastArray[j]; lastArray[j] = lastArray[j+1]; lastArray[j+1] = tempInt; } } } System.out.println(Arrays.toString(lastArray)); } //选择排序和冒泡基本算法差不多,也是外层循环进行n次,在内部循环是每次都把最大的数据换到本次循环的最后面 //比如第一次把最大的换到第n个,第2次换到第n-1上 @Test public void testSelectSort() { //初始化数组 int[] lastArray = initArray; //外层循环lastArray.length-1次循环 for(int i=0; i<lastArray.length; i++) { for(int j=0; j<lastArray.length-1-i; j++) { //当第j个数据大于本次循环的最后一个数据时把两个数据进行交换 if(lastArray[lastArray.length-1-i] < lastArray[j]) { int tempInt = lastArray[j]; lastArray[j] = lastArray[lastArray.length-1-i]; lastArray[lastArray.length-1-i] = tempInt; } } } System.out.println(Arrays.toString(lastArray)); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |