您的位置:首页 > 其它

冒泡排序的实现

2016-07-11 10:16 246 查看
冒泡排序是一种不断交换数据的排序,外层循环控制循环趟数,内层循环是比较相邻的两个数较大的或较小的移动,这样一趟下来就将最大或最小的移动到了最后。
外层比较的是(数据长度-1)趟(只有一个数时不再需要比较),内部比较的次数是比较的(趟数-第几趟)
 
for (i = 0; i < N-1 ; i++)
{
      for (j = 0; j < N-1-i ; j++)
      {
            // 比较 j 和 j+1 位置的元素
            // 进行位置交换
      }
}
 
 
 
public class MaoPao {
public static void main(String[] m){
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(9);
list.add(3);
list.add(4);
list.add(6);
list=getData(list);
System.out.println(""+list.get(0)+list.get(1)+list.get(2)+list.get(3)+list.get(4)+list.get(5));

}
public static List<Integer> getData(List<Integer> data){
List<Integer> datas=new ArrayList<Integer>();
Integer nowData=0;
int length=data.size();
for(int i=0;i<length-1;i++){
for(int j=0;j<length-1-i;j++){
//if(data.get(j)>data.get(j+1)){//每次将较大的后移,每趟最后一个数都是最大的
//始终是第i个和第i个及之后的数据比较,每次比较完后都会将较大的移动到第i个位置,每//趟最小的都是最后一个数
if(data.get(j)<data.get(j+1)){
nowData=data.get(j);
data.set(j, data.get(j+1));
data.set(j+1, nowData);
}
}
}
datas=data;
return datas;
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
List, Set, Map区别?存取元素时,各有什么特点?
set --其中的值不允许重复,无序的数据结构
list   --其中的值允许重复,因为其为有序的数据结构
map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)
arraylist与linklist的区别?,举出当我们有一系列对象时,使用每个的优点?
ArrayList实现了长度可变的数组,在内存中分配连续的空间,是一个可动态维护长度的集合。遍历元素和随机访问元素的效率比较高(内存中分配连续的空间造成的)
LinkedList采用链表存储方式。插入、删除元素时效率比较高(遍历和随机访问时则需要不断的查看地址,速度慢)
遍历元素和随机访问元素是可用arrayList提高速度
插入、删除操作频繁时,可使用LinkedList来提高效率
ArrayList和linkedlist都是list接口的实现类存储的都是不唯一有序的的对象,不唯一是指集合中可以有重复的数据,有序是指插入顺序都是从下表为0开始,逐渐增加
List和set接口都是collection接口的子接口,collection存储不唯一无序的对象,set存储唯
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息