用java写下列各题1、分别用一维数组(例子数组如下 { 7, 4, 3, 9, 0, 6 })实现冒泡排序、选择排序和插入排序中的两种排序算法。 2、题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。 输入格式: 一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2
时间: 2024-03-16 21:47:34 浏览: 57
好的,让我来回答你的问题。
对于第一个问题,以下是Java代码实现冒泡排序和选择排序:
冒泡排序:
```java
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;
}
}
}
}
```
选择排序:
```java
public static void selectionSort(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;
}
}
```
对于插入排序,以下是Java代码实现:
```java
public static void insertionSort(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;
}
}
```
对于第二个问题,以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int oddCount = 0;
int evenCount = 0;
int num = sc.nextInt();
while (num != -1) {
if (num % 2 == 0) {
evenCount++;
} else {
oddCount++;
}
num = sc.nextInt();
}
System.out.println(oddCount + " " + evenCount);
}
}
```
阅读全文