def arr(num): for i in range(len(num)-1): for j in range(len(num)-1-i): if num[j]>num[j+1]: num[j],num[j+1]=num[j+1],num[j] return num print(arr([888,12,11,2,3,9,0,342,234,46,332,432,653,4234,45,234,234,234,234,4]))
#冒泡排序要排序n个数,由于每遍历一趟只排好一个数字,
#则需要遍历n-1趟,所以最外层循环是要循环n-1次,而
#每次趟遍历中需要比较每归位的数字,则要在n-1次比较
#中减去已排好的i位数字,则第二层循环要遍历是n-1-i次
C# 方法:
public int[] Arr(int[] num)
{
int temp;//
for (int i = 0; i < num.Length; i++)//循环数组长度
{
for (int j = 0; j < (num.Length - 1) - i; j++)//循环数组减去已经循环的数
{
//5, 2, 4, 3, 1
if (num[j] > num[j + 1])//5 >2 5>4 5>3 5>1 4>3 4>1 3>1 2>1
{
temp= num[j + 1];///那个相比之下小一些的数 存到temp
num[j + 1] = num[j];//交换位置 给相对比较小的那个数的index给那个比较大的数
num[j] = temp;
}
}
}
return num;//不要忘了
}
JS:
function list(){ //debugger; var list=[1,2,3,8,6,11,5]; for(let i=0;i<list.length;i++){ for(let j=0;j<list.length-1-i;j++){//-1 是因为第一次循环后最后一个元素是最大的 if(list[j]>list[j+1]){ l=list[j+1]; list[j+1]=list[j]; list[j]=l; } } } return list; }