java 排序算法实现 其一:冒泡排序
来源:互联网 发布:数据库第七章答案 编辑:程序博客网 时间:2024/04/29 10:29
冒泡排序的实现:
对于外层循环,每一轮循环将一个数向上浮出,故最少要N-1次循环。
对于内存循环,第i次循环的时候,上面的 i-1 个已经排好了此时需要进行冒泡排序的只有N-i+1个。下标则是从0到N-i。具体的代码如下
外层循环的下标从0到N-1,由于最后一次循环没有必要,所以只需要到N-2即可。
内层循环到下表从0到N-i-1,由于比较的是arr[i]和arr[i+1],所以应该的下标是从0到N-i-2;
具体的代码下载链接为:https://github.com/BLYang7/DataStructure/blob/master/Sort.java
排序的流程如下图:
对于单次的循环,就是在从0到N-i这个区间内,将某个元素向上浮出,比如说外循环的第三次循环:
实现代码如下:
java版:
public class BubbleSort {/** * 冒泡排序算法 java实现 */private static void bubbleSort(int[] arr){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]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}//测试public static void main(String[] args) {int[] arr = {1,2,3,7,4,6,5,0};bubbleSort(arr);for(int a : arr){System.out.print(a + " ");}}}
C++版:
#include"iostream"using namespace std;#define _MAX_ 25int R[_MAX_];void BubbleSort(int n){int i,j,temp;for(i=0;i<n-1;i++)//总共需要进行n-1次轮询for(j=0;j<n-i-1;j++)//每次轮询都要从第一个数字到第n-i-1个,在数组顶部已经排好的,不用讨论{if(R[j]>R[j+1])//每次轮询的时候,如果前一个值比后一个值大,则选择互相调换{temp=R[j];R[j]=R[j+1];R[j+1]=temp;}}}void main(){int k,n;cout<<"input how many number you want to make in order:"<<endl;cin>>n;for(k=0;k<n;k++)cin>>R[k];BubbleSort(n);for(k=0;k<n;k++)cout<<R[k]<<" ";}
0 0
- java 排序算法实现 其一:冒泡排序
- java实现冒泡排序算法
- Java实现冒泡排序算法
- JAVA实现冒泡排序算法
- java实现冒泡排序算法
- Java实现冒泡排序算法
- Java实现冒泡排序算法
- Java实现冒泡排序算法
- Java实现冒泡排序算法
- Java实现冒泡排序算法
- Java实现冒泡排序算法
- java实现冒泡排序算法
- 冒泡排序算法java实现
- Java实现冒泡排序算法
- Java实现冒泡排序算法
- 算法--冒泡排序-Java实现
- Java实现冒泡排序算法
- Java实现排序算法之冒泡排序
- 关于Log4j输出代码位置的说明
- emacs配置颜色主题
- Linux下查看文件权限、修改文件权限的方法
- 第16章、布局Layouts之GridLayout网格布局(从零开始学Android)
- MySQL count(*)总结
- java 排序算法实现 其一:冒泡排序
- INDITEX商标争夺战 中国公司赢了!
- node.js+redis消息队列
- ListView的Adapter使用 之 初学ArrayAdapter<String>
- poj2015--IP Address
- codeforces Round #263(div2) D解题报告
- ibatis dao模板
- 关于MySQL中的死锁
- 二分查找