满意答案
haoy4020
推荐于 2017.11.25
采纳率:53% 等级:9
已帮助:913人
伪代码啊,还真不好描述:
假设有N个数,可以想象成所有的数分成两部分:上部和下部,上部的是排好序的,下部的没有。
外层循环N-1次(i从0到N-2){ //每循环一次就能让一个下部数中最大的冒到上部来
内层循环从0开始,循环到j(j=N-i){ //保证下部的每个位置都进行一次冒泡判断
如果当前的数比它上面的一个数大,就互换位置(冒上来一次)。
/* 这是互换代码
if(array[j]>array[j+1])
{
int tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
*/
//可以想象,如果足够大,该数会一直更新位置,一直往上冒,到达合适位置。
}
}
外层循环结束后就排好序了。
这个算法的特点就是如果一个数是下部中最大的,它就能一直往上冒,不管它当初在什么位置,内层一轮冒泡后它就能冒到上部去(成为上部里最小的)。N-1轮后就排好序了。
描述的不怎么好,还写不出来的话可以直接要代码(猜你是想自己写出来所以没贴代码)
00分享举报