java常见算法 冒泡排序,选择排序,插入排序,快速排序---后面还要更新一下复杂度之类的情况
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java常见算法 冒泡排序,选择排序,插入排序,快速排序---后面还要更新一下复杂度之类的情况,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2190字,纯文字阅读大概需要4分钟。
内容图文
import java.util.Arrays; public class Sort2 { public static void main(String args[]) { int[] array = new int[] { 3, 5, 1, 2, 7, 6, 4, 8, 7 }; // selectSort(array); quickSort(array, 0, array.length - 1); // bubbleSort(array); // insertSort(array); System.out.println(Arrays.toString(array)); } /** * 冒泡排序,升序 两两比较,较大的数往后面冒 * * @param array */ public static void bubbleSort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - i - 1; j++) { // 大数往后冒 if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } /** * 选择排序,升序 寻找最小值然后交换 * * @param array */ public static void selectSort(int[] array) { for (int i = 0; i < array.length; i++) { int min = i; for (int j = i + 1; j < array.length; j++) { if (array[min] > array[j]) { min = j; } } if (min != i) { int temp = array[i]; array[i] = array[min]; array[min] = temp; } } } /** * 插入排序 将数组分为[0,index-1]的有序数列和[index,array.length]无序数列两部分 * 提取array[index]的值记为temp,准备插入左侧有序数列 * 之后从有序数列右侧开始遍历,全体向右偏移一位,直至找到合适的插入点 * 参考https://blog.csdn.net/qq_42857603/article/details/81605124 * * @param array */ public static void insertSort(int[] array) { for (int index = 1; index < array.length; index++) { //temp为要插入到左侧的数 int temp = array[index]; int leftindex = index - 1; // 大数往后移动 while (leftindex >= 0 && array[leftindex] > temp) { array[leftindex + 1] = array[leftindex]; leftindex--; } array[leftindex + 1] = temp; } } /** * 快速排序 * 参考https://blog.csdn.net/shujuelin/article/details/82423852 * * @param array * @param low * @param high */ public static void quickSort(int[] array, int low, int high) { if (low > high) { return; } int i = low; int j = high; int base = array[low]; while (i < j) { // 先看右边,找到第一个小于基准点的数 while (i < j && array[j] >= base) { j--; } // 再看左边,找一个大于基准点的数 while (i < j && array[i] <= base) { i++; } if (i < j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } // 最后将基准位与i和j相等位置的数字交换 array[low] = array[i]; array[i] = base; //递归调用排序左侧 quickSort(array, low, i - 1); //递归调用排序右侧 quickSort(array, i + 1, high); } }
?
内容总结
以上是互联网集市为您收集整理的java常见算法 冒泡排序,选择排序,插入排序,快速排序---后面还要更新一下复杂度之类的情况全部内容,希望文章能够帮你解决java常见算法 冒泡排序,选择排序,插入排序,快速排序---后面还要更新一下复杂度之类的情况所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。