1.杨辉三角
使用二维数组打印一个 10 行杨辉三角。
提示
- 第一行有 1 个元素, 第 n 行有 n 个元素
- 每一行的第一个元素和最后一个元素都是 1
- 从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
public class YangHuiText {
public static void main(String[] args) {
int[][] yangHui = new int[10][]; //每行个数不确定
for(int i = 0;i < yangHui.length;i++){
yangHui[i] = new int[i + 1]; //初始化每一行的元素个数
yangHui[i][0] = yangHui[i][i] = 1;
for(int j = 1;j < yangHui[i].length - 1;j++){
yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j];
}
}
for(int i = 0;i < yangHui.length;i++){
for(int j = 0;j < yangHui[i].length;j++){
System.out.print(yangHui[i][j] + " ");
}
System.out.println();
}
}
}
运行结果:
2.创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同
给数组赋值时检查赋值的元素与之前的元素是否相等,若有相等的就再重新赋值
public class GiveValueText {
public static void main(String[] args) {
int[] arr = new int[6];
for (int i = 0;i < 6;i++){
arr[i] = (int)(Math.random() * 30) + 1;
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i--;
break;
}
}
}
for (int k = 0;k < 6;k++){
System.out.println(arr[k]);
}
}
}
3.冒泡排序
int temp = 0;
for (int i = 0;i < arr.length-1;i++){
for (int j = 0;j < arr.length - 1 - i;j++ ){
if (arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int k = 0;k < arr.length;k++){
System.out.println(arr[k]);
}
4.快速排序
public class ArraySort {
public static void main(String[] args) {
int[] arr = new int[]{12,24,76,2,87,56,42};
quickSort(arr);
for (int k = 0;k < arr.length;k++){
System.out.println(arr[k]);
}
}
private static void swap(int[] data, int i, int j) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
private static void subSort(int[] data, int start, int end) {
if (start < end) {
int base = data[start];
int low = start;
int high = end + 1;
while (true) {
while (low < end && data[++low] - base <= 0)
;
while (high > start && data[--high] - base >= 0)
;
if (low < high) {
swap(data, low, high);
} else {
break;
}
}
swap(data, start, high);
subSort(data, start, high - 1);//递归调用
subSort(data, high + 1, end);
}
}
public static void quickSort(int[] data){
subSort(data,0,data.length-1);
}
}
冒泡排序和快速排序都是在数据结构中学过的排序方法,排序的原理清晰了代码就容易写出来了。