冒泡排序的主要思想是对比相邻的元素值,如果满足条件,就交换两个元素的位置即:把较小的元素移动到数组前面,把较大的元素移动到数组后面,这样,较小的元素就像气泡一样从底部升到顶部。
冒泡排序使用的是双层循环,外层循环主要是控制循环的轮数,让排序数组的轮数-1,内层循环主要是比较相邻的元素,来确定是否要交换位置,对比和交换次数依排序轮数而减少。
第一趟比较,得到最大值64,把64移动到最后,第二趟比较不再比较最大值64,将得到的24移动到64前面,其他循环以此类推,直到完成所有的排序。
设计过程:
> 先得到一个随机生成的数组:详细代码见:http://blog.csdn.net/weasleyqi/article/details/7768055
> 使用冒泡排序对随机数组进行排序,代码如下:
protected void do_button_actionPerformed(ActionEvent e) { textArea2.setText(""); for(int i = 1;i<array.length;i++) { for(int j = 0;j<array.length;j++) { if(array[j]>array[j+1]) { int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } textArea2.append(array[j]+" "); } textArea2.append("["); for(int j = array.length - i;j<array.length;j++) { textArea2.append(array[j]+" "); } textArea2.append("]"\n); } }
各种排序之间的比较请见:http://blog.csdn.net/weasleyqi/article/details/7768055