选择排序和冒泡排序的学习

来源:互联网 发布:导弹艇积木淘宝 编辑:程序博客网 时间:2024/04/30 10:06


例.有个数组{4,2,10,8,1,14,2,16},请将其从小到大排序

选择排序做法如下:

for(int i=0;i<arr.length-1;i++){//选择for(int j=i+1;j<arr.length-1;j++){if(arr[i]>arr[j]){swap(arr, i, j);//交换i,j索引的值}}}

冒泡排序代码如下:
for(int i=0;i<arr.length-1;i++){//冒泡排序for(int j=0;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){swap(arr, j, j+1);}}}


冒泡还可这样实现:

for(int i = arr.length-1;i>0;i--){for(int j=0;j<i;j++){if(arr[j]<arr[j+1]){swap(arr,j,j+1);}num++;}}

选择排序:从第一个开始到最后一个循环,每个数只要和其后面的数字进行比较排序,最后就可得到数组排序。这是因为每循环一次就会得到这些数的最大(最小)并置于最前面的位置。

冒泡排序:总是比较相邻的两位,并按需求交换位置,每一次循环会将最大(最小)置于最末位置,所以下一次循环就可以不比较这个数。

原创粉丝点击