题目
编写程序,从键盘上任意接收10个整数存入一维数组中(无序),利用冒泡排序将该数组元素由小到大进行排序,并输出排序后数组。
解题步骤
(1)建立用于存放数据的一维数组;
(2)接收用户输入;
(3)冒泡排序;
(4)输出结果;
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import java.util.Scanner;
public class Demo { public static void main(String[] args) { Scanner user = new Scanner(System.in); int[] array = new int[10]; int i, j, temp; System.out.println("please enter 10 integers:"); for (i = 0; i < 10; i++) { array[i] = user.nextInt(); } for (i = 0; i < 9; i++) for (j = 0; j < 9 - i; j++) if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } System.out.print("data from small to large:"); for (i = 0; i < 10; i++) { System.out.format("%d ", array[i]); } } }
|
C语言
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <stdio.h>
int main() { int array[10], i, j, temp; printf("please enter 10 integers:"); for (i = 0; i < 10; i++) { scanf("%d", &array[i]); } for (i = 0; i < 9; i++) for (j = 0; j < 9 - i; j++) if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } printf("data from small to large:"); for (i = 0; i < 10; i++) { printf("%d ", array[i]); } return 0; }
|
说明
Bubble Sort介绍:
- 冒泡排序是一种简单直观的排序算法。通过”重复性地比较需要排序的数列,一次比较两个元素,若顺序错则交换”的方法完成排序。
- 算法步骤:
(1)比较相邻位置的两个元素,若前者大于后者,则交换顺序;
(2)重复步骤一,对所有数据遍历走访,此时,末尾元素最大;
(3)对除末尾元素外的其他元素重复以上操作;
(4)上述步骤重复次数逐渐减少,直到没有任何数据需要进行比较;
核心:
1 2 3 4 5 6 7 8
| for (i = 0; i < N - 1; i++) for (j = 0; j < N - 1 - i; j++) if (a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; }
|