冒泡排序
来源:互联网 发布:淘宝背景音乐怎么修改 编辑:程序博客网 时间:2024/06/04 17:59
对于一个int数组,请编写一个冒泡排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。
# 测试样例:[1,2,3,5,2,3],6[1,2,2,3,3,5]
我的提交
# -*- coding:utf-8 -*-class BubbleSort: def bubbleSort(self, A, n): # write code here k = n - 1 for _ in range(n - 1): for j in range(k): if A[j] > A[j+1]: A[j],A[j+1] = A[j+1],A[j] k = k - 1 return A
其他人能通过的 python 版本
(有现成的函数能用就用 ?。。。。)
# -*- coding:utf-8 -*-class BubbleSort: def bubbleSort(self, A, n): # write code here return sorted(A)
参考答案
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = arr.length - 1; i >= 0; i--) { for (int j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); } } } } public static void swap(int[] arr, int index1, int index2) { int tmp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = tmp; } public static int[] generateArray(int len, int range) { if (len < 1) { return null; } int[] arr = new int[len]; for (int i = 0; i < len; i++) { arr[i] = (int) (Math.random() * range); } return arr; } public static void printArray(int[] arr) { if (arr == null || arr.length == 0) { return; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } public static boolean isSorted(int[] arr) { if (arr == null || arr.length < 2) { return true; } for (int i = 1; i < arr.length; i++) { if (arr[i - 1] > arr[i]) { return false; } } return true; } public static void main(String[] args) { int len = 10; int range = 10; int testTimes = 50000; for (int i = 0; i < testTimes; i++) { int[] arr = generateArray(len, range); bubbleSort(arr); if (!isSorted(arr)) { System.out.println("Wrong Case:"); printArray(arr); break; } } int len2 = 13; int range2 = 10; int testTimes2 = 50000; for (int i = 0; i < testTimes2; i++) { int[] arr = generateArray(len2, range2); bubbleSort(arr); if (!isSorted(arr)) { System.out.println("Wrong Case:"); printArray(arr); break; } } }}
阅读全文
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- Laravel Passport oauth2.0 验证不同表用户修改
- UGUI与NGUI的区别汇总
- Digdata Development Java__Study_11(字符字节流 对象序列化 properties)
- MVC5中使用ReactJS.NET入门
- bzoj2783 [JLOI2012]树 STL+dfs
- 冒泡排序
- 动态规划——最少硬币问题
- scala学习-10-scala中:: , +:, :+, :::, +++的区别
- JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
- HUU6147 Pokémon GO II
- java中采用dom4j解析xml文件
- 动态数组的实现原理(自定义动态数组)
- Establishing a Build Environment
- datastage TD connector报错