.net商城网站开发,做网站哪家正规,新余做网站的公司,广告投放数据分析报告常用算法 1.冒泡排序: 原理#xff1a;比较两个相邻的元素#xff0c;将值大的元素交换至右端 示例: public static void bubbleSort(int[] a) {int n a.length;//总共进行n-1轮的比较for (int i 1; i n; i) {for (int j 0; j n - i; j) {if (a[j] a[j 1]…常用算法 1.冒泡排序: 原理比较两个相邻的元素将值大的元素交换至右端 示例: public static void bubbleSort(int[] a) {int n a.length;//总共进行n-1轮的比较for (int i 1; i n; i) {for (int j 0; j n - i; j) {if (a[j] a[j 1]) {//交换int temp a[j];a[j] a[j 1];a[j 1] temp;}}}
} 2.选择排序 原理每一趟从待排序的记录中选出最小的元素顺序放在已排好序的序列最后直到全部记录排序完毕。 示例: public static void selectionSort(int[] a) { for(int i 0; i a.length - 1; i) {// 做第i趟排序int m i;for(int j i 1; j a.length; j){// 选最小的记录if(a[j] a[m]){m j; //记下目前找到的最小值所在的位置}}if(i ! m){ //交换a[i]和a[m]int temp a[i];a[i] a[m];a[m] temp;}}
} 3.插入排序: 原理从数组的第一个元素a[0]开始将其后一个元素a[1]插入到a[0]的前面或者后面接着继续这一过程。每次都是将a[i]插入到已经排序好的a[0]~a[i-1]中合适的位置 示例: public static void insertSort(int[] a) {for (int i 1; i a.length; i) {for (int j i; j 0; j--) {if (a[j] a[j - 1]) {int temp a[j];a[j] a[j - 1];a[j - 1] temp;} else {break;}}}
} 4.快速排序: 快速排序是对冒泡排序的一种改进思想在数组中找出适当的轴心然后将数组一分为二分别对左边与右边数组进行排序二分查找 前提条件 已排序的数组中查找二分查找的基本思想是: – 首先确定该查找区间的中间点位置 int mid (lowupper) / 2; – 然后将待查找的值与中间点位置的值比较 若相等则查找成功并返回此位置。若中间点位置值大于待查值则新的查找区间是中间点位置的左边区域。若中间点位置值小于待查值则新的查找区间是中间点位置的右边区域。下一次查找是针对新的查找区间进行的。示例: public static int binarySearch(int[] a, int num) {int low 0; // 起点int upper a.length - 1; // 终点while (low upper) {int mid (low upper) / 2; // 中间点if (a[mid] num) { // 中间点的值小于要查找的值low mid 1; // 更改查找的起点为中间点位置后一位} else if (a[mid] num) { // 中间点的值大于要查找的值upper mid - 1; // 更改查找的终点为中间点位置前一位} else { // 中间点的值等于要查找的值return mid; // 返回该位置}}return -1;
} 数组帮助类Arrays java.util.Arrays 数组操作工具 public static void sort(int[] a); //经过调优的快速排序法
public static int binarySearch(int[] a, int key); //使用二分搜索法 二维数组 Java并没有真正的多维数组二维数组可以看成以数组为元素的数组。如 int [][] a { {1}, {4,5,6}, {7,8}}; 转载于:https://www.cnblogs.com/smart-hwt/p/8184354.html