题目
编写程序,从键盘上任意接收10个整数存入一维数组中(无序),利用冒泡排序将该数组元素由小到大进行排序,并输出排序后数组。
解题步骤
(1)建立用于存放数据的一维数组;
(2)接收用户输入;
(3)冒泡排序;
(4)输出结果;
Java
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语言
#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)上述步骤重复次数逐渐减少,直到没有任何数据需要进行比较;
核心:
for (i = 0; i < N - 1; i++) //i控制比较趟数 for (j = 0; j < N - 1 - i; j++) //j控制每趟比较次数 if (a[j] > a[j + 1]) //根据实际情况从大到小或从小到大输出,此处为从小到大 { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; }