冒泡排序

Java算法-冒泡排序

假装没事ソ 提交于 2019-11-26 14:31:25
冒泡排序 基本思想 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复访问要排序的数组,一次比较两个元素,如果他们的顺序错误就把他们交换过来。访问数组的工作是重复地进行直到没有再需要交换的数据,也就是说该数组已经排序完成。定义数组元素个数为n个元素,第一轮是“第一个元素”遍历数组剩余(n-1)个数,如果顺序错误就调换位置,直到第一轮最后一个数比较完成,然后开始第二轮,遍历剩余的(n-2)…第(n-1)轮是第n-1个元素和最后一个元素比较。数组排序结束。 算法描述 冒泡排序算法的算法过程如下: ①. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 ②. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 ③. 针对所有的元素重复以上的步骤,除了最后一个。 ④. 持续每次对越来越少的元素重复上面的步骤①~③,直到没有任何一对数字需要比较。 代码实现 在import java.util.Arrays; /** * 冒泡排序 */ public class BubbleSort { public static void sort(int[] array) { if (array == null || array.length == 0) { return; } int length = array.length; //外层

排序算法之冒泡排序

时光怂恿深爱的人放手 提交于 2019-11-26 12:15:58
考点1:交换两个数,不借助第三个变量,使用异或操作,异或规则:0^0=0; 0^1=1; 1^0=1; 1^1=0; 考点2:冒泡排序的原理:从左往右两两比较大小,小的放左边,每次循环找出当前趟的最大值,再比较这个数之前的序列,一直循环到只有两个数字,比较完这两个数的大小之后,冒泡排序结束; 上代码: package sort; import org.junit.Test; /** * @ClassName: BubbleSort * @Description: 冒泡排序 * 原理:从左往右两两比较大小,小的放左边,每次 * 循环找出当前趟的最大值,再比较这个数之前的序 * 列,一直循环到只有两个数字,比较完这两个数的 * 大小之后,冒泡排序结束; * @Author: hunterm * @Date: 2019/8/8 9:36 * @Version: 1.0 */ public class BubbleSort { @Test public void test(){ int[] array = {5,6,2,0,3,99,5,52,31,1,4}; int[] bub = new BubbleSort().bubble(array); for(int i = 0;i < bub.length;i++){ System.out.println(bub[i]); } }

java 冒泡排序

落爺英雄遲暮 提交于 2019-11-26 09:01:51
冒泡排序: 一种交换排序,基本思想是两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止 比如数组{9,1,5,8,3,7,6,2} 使用冒泡排序-->     第一轮  [1, 5, 8, 3, 7, 6, 2, 9]     第二轮  [1, 5, 3, 7, 6, 2, 8, 9]     第三轮  [1, 3, 5, 6, 2, 7, 8, 9]     第四轮  [1, 3, 5, 2, 6, 7, 8, 9]     第五轮  [1, 3, 2, 5, 6, 7, 8, 9]     第六轮  [1, 2, 3, 5, 6, 7, 8, 9]     第七轮  [1, 2, 3, 5, 6, 7, 8, 9]     第八轮  [1, 2, 3, 5, 6, 7, 8, 9]     第九轮  [1, 2, 3, 5, 6, 7, 8, 9] 每轮都会有一个之排序到正确位置; 冒泡排序的标准代码: void BubbleSort(vector<int>& vec) { int n = vec.size(); for (int i = 0; i < n; ++i) { for (int j = n - 2; j >= i; --j) //注意j是从后往前循环 { if (vec[j] > vec[j + 1]) swap(vec[j], vec[j + 1])

JS实现冒泡排序

人走茶凉 提交于 2019-11-26 06:20:27
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>冒泡排序</title> </head> <body> <script> //思路:先比较一轮一次,然后用for循环比较一轮多次,然后再加for循环比较多轮多次 //从大到小排序 var array=[10,20,9,8,79,65,100]; //比较轮数 for ( var i=0;i<array.length-1;i++){ //每轮比较次数,次数=长度-1-此时的轮数 for (var j=0;j<array.length-1-i;j++) { if (array[j] > array[j + 1]) { var temp = array[i]; array[j] = array[j + 1]; array[j + 1] = temp; } //end if }//end for 次数 } //end for 轮数 console.log(array); </script> </body> </html> 来源: https://blog.51cto.com/14477123/2427484

python基础之冒泡排序

…衆ロ難τιáo~ 提交于 2019-11-25 23:24:02
list_pratisce = [45,69,8,19,9] n = len(list_pratisce) for j in range(n): for i in range(n-1): if list_pratisce[i] > list_pratisce[i+1]: temp = list_pratisce[i] list_pratisce[i] = list_pratisce[i+1] list_pratisce[i+1] = temp print(list_pratisce) 输出结果: [8, 9, 19, 45, 69] 来源: 51CTO 作者: ziwenzhou 链接: https://blog.51cto.com/9237101/2440144?source=dra