黑马程序员技术交流社区
标题:
java中冒泡排序的实现
[打印本页]
作者:
Mr.Wu
时间:
2016-5-14 10:20
标题:
java中冒泡排序的实现
前言:
由于自己有c的基础,现在也在学习java,所以今天用java实现冒泡排序。
一、基本思路:
冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。
一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,......第i趟需要比较n-i次。
二、算法实现
c语言版:
# include <stdio.h>
void sort(int * a, int len)
{
int i, j, t;
for (i=0; i<len-1; ++i)
{
for (j=0; j<len-1-i; ++j)
{
if (a[j] > a[j+1]) // >表示升序 <表示降序
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
int main(void)
{
int a[6] = {10, 2, 8, -8, 11, 0};
int i = 0;
sort(a, 6);
for (i=0; i<6; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
复制代码
java版:
public class sort{
public static void main(String args[]){
int[] values={10, 2, 8, -8, 11, 0};
sort(values);
for(int i=0;i<values.length;i++){//排序后打印数组中的元素
System.out.println("Index: "+i+" value: "+values[i]);
}
}
public static void sort(int[] values){
int temp;
for(int i=0;i<values.length;i++){
for(int j=0;j<values.length-i-1;j++){
if(values[j]>values[j+1]){ // >表示升序 <表示降序
temp=values[j];
values[j]=values[j+1];
values[j+1]=temp;
}
}
}
}
}
复制代码
总结:
可以说两种语言的实现几乎是一模一样的,所以学会一门语言后迁移到另外一门语言其实并不困难。
作者:
我有上将潘凤
时间:
2016-5-14 22:40
哦豁。。。
作者:
climb
时间:
2016-5-14 23:11
可以哦...纠结中............
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2