用 java 写一个0到10的正序排序算法
时间: 2024-05-13 15:21:15 浏览: 89
好的,我可以为您提供一种简单的排序算法,如下所示:
```java
public static void main(String[] args) {
int[] arr = {5, 2, 9, 1, 0, 8, 4, 6, 7, 3};
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
```
这段代码使用了双重循环的方式进行排序,思路比较简单。希望对您有所帮助!
相关问题
java数组 年龄正序排序
要对Java数组中的年龄进行正序排序,可以使用Arrays.sort()方法。该方法可以对数组进行排序,而不需要手动编写排序算法。以下是实现该功能的步骤:
1. 创建一个整数类型的数组,用于存储年龄数据。
2. 使用Arrays.sort()方法对数组进行排序,该方法会按照升序对数组进行排序。
3. 遍历排序后的数组,输出排序后的年龄数据。
代码示例:
```
int[] ages = {25, 18, 30, 22, 35};
Arrays.sort(ages);
for (int age : ages) {
System.out.println(age);
}
```
输出结果为:
```
18
22
25
30
35
```
用jAva写 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。
这道题是要求找出两个已排序数组的中位数,要求算法的时间复杂度为 O(log (m n))。可以使用二分法来解决这个问题。
具体的做法是先将两个数组合并成一个有序数组,然后找到中间位置的元素或者中间两个元素的平均数即可。为了保证时间复杂度为 O(log (m n)),我们可以采用二分法来找到中位数。
假设数组 nums1 的长度为 m,数组 nums2 的长度为 n。我们可以先假设中位数在 nums1 中的位置为 i,那么中位数在 nums2 中的位置就是 (m+n+1)/2-i。然后通过二分法在 nums1 中查找 i 的位置,使得 nums1[i-1] <= nums2[(m+n+1)/2-i] 且 nums2[(m+n+1)/2-i-1] <= nums1[i]。这个条件可以保证 nums1 和 nums2 合并后,中位数的左边都小于中位数,中位数的右边都大于中位数。如果 i 的位置不正确,我们就调整二分查找的区间,直到找到正确的位置。
最终的时间复杂度为 O(log(min(m,n)))。
阅读全文