作为一名Java开发工程师,想必很多小伙伴在数据结构与算法的道路上难以突破,今天小编就和大家一起去突破它。开启算法之路。只要肯坚持,没有突破不了的困难。
冒泡排序题目描述:
给定一个无序的数组,按照从小到大的顺序进行排序。
例如:
int[] arr = {3, 1, 4, 7, 87, 32, 2, 5};
返回一个有序的数组:sortArray:{1, 2, 3, 4, 5, 7, 32, 87}
实现思想:由两个for循环实现,第一个for循环控制的是0~n-1,0~n-2,... 0~0,什么意思呢?就是说控制的是第几次冒泡;第二个for循环实现一次遍历中,不同位置上数据的交换(如上图所示)。
大家可以将上述中后续的几次冒泡排序实现过程, 手动画一下哦,相信你有不一样的收获。
代码实现(实现主要逻辑)private static void bubbleSort(int[] arr) { // 1、边界处理 if (arr == null || arr.length < 2) { return; } // 2、实现主逻辑 int n = arr.length; // 0 ~ n-1 // 0 ~ n-2 // 0 ~ n-3 for (int i = n - 1; i >= 0; i--) { // 0 ~ n-1 做的一些事情 // 0和1是否交换,1和2是否交换 。。。 for (int j = 1; j <= i; j++) { if (arr[j - 1] < arr[j]) { swapArray(arr, j - 1, j); } } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)