未经同意,请勿转载!如有收货,请留一赞,不胜感激!
同时欢迎加入我们的qq交流群:326079727
话不多说上代码:
c语言:
1 void bubbing(){ 2 int init_arr[10] = {1,5,9,8,7,6,7,99,8,10};//define init the array 3 //going to the exinternal loop,start to loop from 0 4 int tmp; 5 int len = sizeof(init_arr)/4;//获取数组的长度,因为c语言的每个int型占四个字节,所除以4 6 for (int i = 0; i < len; i++) {//外层循环,从第一个数开始比较,每一轮下来,都能获取到一个最大值,然后放到数组最后面。 7 for (int j = 0; j < len-i-1; j++) {//j的初始值为也为0,但是遍历到len-i-1时就不再遍历了,因为len-j-1后面的值是已经排好序的值。 8 if (init_arr[j + 1] < init_arr[j]) {//开始进行判断,每一轮都通过判断相邻两个值大小,把大的放到后面。 9 int t = init_arr[j]; 10 init_arr[j] = init_arr[j+1]; 11 init_arr[j+1] = t; 12 } 13 14 }//printf("%d",init_arr[i]); 15 } 16 for (int k = 0; k < len-1 ; k++) {//进行打印排序好的数组 17 printf("%d ",init_arr[k]); 18 } 19 20 }
Python语言:
def bubbing(): list=[1,2,5,8,55,66,99,126,33,55]#定义列表,这里也可以任意定义其他数 #外层循环走起 #进行外层循环,这里和c语言的for循环的语法阿是不一样的,获取list的长度如此简单。 # 外层循环,外层一共进行十轮(数组的长度),每一轮都从j=0,也就是第一个数开始内层循环,进行比较判断 for i in range(0,len(list)): for j in range(0,len(list)-i-1): #内侧循环,每次都从第0位开始比较,一直比较到len(list)-i-1。 # 因为len(list)-i-1后面的数值已经拍好序了,所以不用再比较 if list[j]>list[j+1]: list[j+1],list[j]=list[j],list[j+1]#python写法之骚气,不用buffer就可以进行变量值的互换。 j+=1#内部的加一 i+=1#每完成一轮则加一 print(list) bubbing()
附赠:排序动图: