当前位置: 首页 > news >正文

2022没封的网站免费的国内设计网站

2022没封的网站免费的,国内设计网站,韩都衣舍网站建设,wordpress恶意 文章Java实现排序的基础方法有很多#xff0c;下面介绍几种比较常见的排序算法及其代码实现。 1.冒泡排序 冒泡排序是一种基础的排序算法#xff0c;其思想是依次比较相邻的两个元素#xff0c;如果顺序不对则交换它们的位置#xff0c;直到整个数组都排好序为止。 代码实现…Java实现排序的基础方法有很多下面介绍几种比较常见的排序算法及其代码实现。 1.冒泡排序 冒泡排序是一种基础的排序算法其思想是依次比较相邻的两个元素如果顺序不对则交换它们的位置直到整个数组都排好序为止。 代码实现 public static void bubbleSort(int[] arr) {     int n arr.length;     for (int i 0; i n - 1; i) {         for (int j 0; j n - i - 1; j) {             if (arr[j] arr[j 1]) {                 int temp arr[j];                 arr[j] arr[j 1];                 arr[j 1] temp;             }         }     } } 2.快速排序 快速排序是一种高效的排序算法其基本思想是取一个基准元素将小于它的元素放在左边大于它的元素放在右边再递归地对左右两部分进行排序。 代码实现 public static void quickSort(int[] arr, int left, int right) {     if (left right) {         int pivot partition(arr, left, right);         quickSort(arr, left, pivot - 1);         quickSort(arr, pivot 1, right);     } } private static int partition(int[] arr, int left, int right) {     int pivot arr[left];     int i left 1;     int j right;     while (i j) {         while (i j arr[i] pivot) {             i;         }         while (i j arr[j] pivot) {             j--;         }         if (i j) {             int temp arr[i];             arr[i] arr[j];             arr[j] temp;             i;             j--;         }     }     arr[left] arr[j];     arr[j] pivot;     return j; } 3.插入排序 插入排序是一种简单的排序算法其思想是将待排序元素逐个插入到已排序序列中的合适位置。 代码实现 public static void insertSort(int[] arr) {     int n arr.length;     for (int i 1; i n; i) {         int key arr[i];         int j i - 1;         while (j 0 arr[j] key) {             arr[j 1] arr[j];             j--;         }         arr[j 1] key;     } } 4.选择排序 选择排序是一种简单的排序算法其思想是每次从未排序的元素中选择最小或最大的元素放到已排序序列的末尾。 代码实现 public static void selectSort(int[] arr) {     int n arr.length;     for (int i 0; i n - 1; i) {         int minIndex i;         for (int j i 1; j n; j) {             if (arr[j] arr[minIndex]) {                 minIndex j;             }         }         int temp arr[i];         arr[i] arr[minIndex];         arr[minIndex] temp;     } } 5.归并排序 归并排序是一种高效的排序算法其基本思想是将待排序序列分成两个子序列分别排序后再将其合并成一个有序序列。 代码实现 public static void mergeSort(int[] arr, int left, int right) {     if (left right) {         int mid (left right) / 2;         mergeSort(arr, left, mid);         mergeSort(arr, mid 1, right);         merge(arr, left, mid, right);     } } private static void merge(int[] arr, int left, int mid, int right) {     int[] temp new int[right - left 1]; // 临时数组     int i left; // 左序列指针     int j mid 1; // 右序列指针     int k 0; // 临时数组指针     while (i mid j right) {         if (arr[i] arr[j]) {             temp[k] arr[i];         } else {             temp[k] arr[j];         }     }     while (i mid) {         temp[k] arr[i];     }     while (j right) {         temp[k] arr[j];     }     // 将临时数组中的元素复制到原数组中     for (int m 0; m temp.length; m) {         arr[left m] temp[m];     } } 6.堆排序 堆排序是一种利用堆的数据结构进行排序的算法其基本思想是将待排序序列构造成一个大/小根堆然后每次将堆顶元素最大/最小值放到已排序序列的末尾。 代码实现 public static void heapSort(int[] arr) {     int n arr.length;     // 构造大根堆     for (int i n / 2 - 1; i 0; i--) {         adjustHeap(arr, i, n);     }     // 排序     for (int i n - 1; i 0; i--) {         swap(arr, 0, i);         adjustHeap(arr, 0, i);     } } private static void adjustHeap(int[] arr, int i, int n) {     int temp arr[i];     for (int j i * 2 1; j n; j j * 2 1) {         if (j 1 n arr[j] arr[j 1]) {             j;         }         if (arr[j] temp) {             arr[i] arr[j];             i j;         } else {             break;         }     }     arr[i] temp; } private static void swap(int[] arr, int i, int j) {     int temp arr[i];     arr[i] arr[j];     arr[j] temp; } 7.二分法排序 二分法排序也称为折半插入排序是一种基于插入排序的改进算法。其基本思想是将待排序序列分为已排序和未排序两部分在已排序序列中使用二分查找找到插入位置然后将元素插入到已排序序列的正确位置。 public static void binaryInsertionSort(int[] arr) {     int n arr.length;     for (int i 1; i n; i) {         int target arr[i];         int left 0;         int right i - 1;         // 使用二分查找找到插入位置         while (left right) {             int mid (left right) / 2;             if (target arr[mid]) {                 right mid - 1;             } else {                 left mid 1;             }         }         // 将大于target的元素都向后移动一位         for (int j i - 1; j left; j--) {             arr[j 1] arr[j];         }         arr[left] target; // 插入元素到正确位置     } }
http://www.yutouwan.com/news/471121/

相关文章:

  • 濮阳建网站的网站建设地带
  • 成都市建设工程施工安监站网站资格证网站怎么做
  • 雄县有做网站的吗wordpress插件国际化
  • 如何建立网站导航网站 个人 公司 区别
  • 外贸建网站深企在线
  • 哪个公司做网站比较好做网站应该拿多少提成
  • 免费软件的源代码公开吗嘉兴优化公司
  • 乐山企业品牌网站建设做网站流量优化都是什么
  • 深圳网站平台建设有关房地产开发建设的网站
  • 成品网站w灬源码伊园网站产品展示模板
  • 中国建设网站红黑榜名单网站建设实验报告总结
  • 网站修改建设网站建设书模板
  • 网站开发源代码什么意思jsp做网站遇到的问题
  • 企业网站宣传建设天正电气网站建设
  • 邯郸学做网站学校城市门户网站模板
  • qq邮箱做网站商标logo设计图案
  • 便利的聊城网站建设好发网站建设
  • 缙云建设局网站玉林市城市建设投资有限公司网站
  • 虚拟机中做网站最新73种暴利产品竞价单页网站制作带订单后台系统模板
  • 哪里做网站最好网站备案对网站负责人的要求
  • 百度网站怎么提升排名深圳设计周2021时间
  • 自适应网站怎样做移动适配wordpress英文升级为中文
  • 移动通信网站建设跨境电商网站建设
  • 免费创造网站如何获得网站域名
  • 哈尔滨道外区建设局官方网站毕节公司做网站
  • 行业网站开发方案互联网营销行业
  • 江苏网站开发多少钱镇江大港属于哪个区
  • 广元做开锁网站wordpress 慢2017
  • 斗鱼企业网站建设的目的网络营销理论有哪些内容
  • 樟树市城乡规划建设局网站网站注册的账号怎么注销