publicvoidBubbleSort(){for(intp=0;p < arraylist.size()-1;p++){for(intq=0;q <arraylist.size()-1-p;q++){if(arraylist.get(q)>arraylist.get(q+1)){inttemp =arraylist.get(q); arraylist.set(q,arraylist.get(q+1)); arraylist.set(q+1,temp); } } } System.out.println(arraylist);...
1.InsertionSort类 InsertSort是抽象类,需要实例化时需要实现publicabstractintelemCompare(T a, T b)方法,此方法描述了比较类型T两个实例大小的策略。调用srot方法即可对ArrayList<T>进行插入排序。 importjava.util.ArrayList; /** * 作者原创,引用请注明出处 * @author ChameleonChen */publicabstractclassInsertio...
public voidselectionSort(){for(int p=0;p < arraylist.size()-1;p++){for(int q=p+1;qarraylist.get(q)) {int temp =arraylist.get(p); arraylist.set(p, arraylist.get(q)); arraylist.set(q,temp); } } } System.out.println(ReadAFile.arraylist);//按从小到大的顺序打印出数字 } 1. ...
bucket.set(i, bucketSort(bucket.get(i), bucketSize / 2)); } } List<Integer> result = new ArrayList<>(); for (List<Integer> val : bucket) { result.addAll(val); } return result; } } 10、基数排序(Radix Sort) 算法步骤 取得数组中的最大数,并取得位数,即为迭代次数n(例如:数组中最...
public class 桶排序 { public static ArrayList<Integer> BucketSort(ArrayList<Integer> arr, int bucketSize){ if(arr == null || arr.size() < 2){ return arr; } //获得最大和最小值 int max = arr.get(0); int min = arr.get(0); for(int i = 0; i < arr.size(); i++){ if(...
buckets.add(new ArrayList<>());for (int num: arr) { int idx = (int)((num - min) / (max - min + 1.0) * bucketCount);buckets.get(idx).add(num);} int idx = 0;for (List<Integer> bucket: buckets) { insertionSort(bucket);for (int num: bucket)arr[idx++] = num;} } } ...
在Java里面常用的util有:String [],int [],ArrayList,Vector,CopyOnWriteArrayList等。及可以同过一维数组[]自己实现不同逻辑结构的Util类。而ArrayList封装了一些[]的基本操作方法。ArrayList和Vector的区别是:Vector是线程安全的,方法同步。CopyOnWriteArrayList也是线程安全的但效率要比Vector高很多。(PS:如果不懂出门右拐...
(2)Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。 (3)LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还提供...
1,ArrayList: 底层用数组实现,默认大小10,每次扩容1.5倍。 扩容新建数组,复制原数组中元素,开销很大。 删除元素将后面元素向前移一位,复杂度On。 常用方法: 三种初始化方式 public ArrayList(int initialCapacity) //指定初始大小 public ArrayList() //默认10 public ArrayList(Collection<? extends E> c) //传入...
在一个名为ArraySorts的实用类中,有一个Melon数组、前面的Comparator数组和insertionSortWithComparator()方法,我们可以编写如下内容: 代码语言:javascript 代码运行次数:0 运行 复制 Melon[] melons = {...}; ArraySorts.insertionSortWithComparator(melons, byType); 对于较小且大部分排序的数组,这可能会很快。此外...