冒泡算法:它重复地走访过要排序的元素列,依次比较两个相邻的元素

通用代码:
void BubbleSort(int arr[], int n){//从小到大排序 相邻来两个数比较,将大的数字往后放for (int i = 0; i < n - 1; i++) //n-1是因为数组下标最大为n-1 要进行10(//9)轮比较{//n-1是因为数组下标最大为n-1 要进行10(//9)次比较,再减i是因为每最后的i个元素已经有序不需要继续排序for (int j = 0; j < n - 1 - i; j++){if (arr[j] > arr[j + 1]) //两两比较,将小的数据放前面{swap(arr, j + 1, j); //交换arr数组arr[j+1]和arr[j]的值}}}}//交换函数后面就不列举了,凡是swap都是下面代码实现的void swap(int arr[], int x, int y){int temp = arr[x];arr[x] = arr[y];arr[y] = temp;}
using System;namespace _029_冒泡排序{class Program{static void Main(string[] args){int[] nums = new int[10];Console.WriteLine("请输入10个数字:");for (int i = 0; i < nums.Length; i++){nums[i] = Convert.ToInt32(Console.ReadLine());}Console.WriteLine("你输入的10个数字为:");for (int i = 0; i < nums.Length; i++){Console.Write(nums[i]+" ");}Console.WriteLine();for (int i = 0; i < nums.Length-1; i++){for (int j = 0; j < nums.Length-1-i; j++){if (nums[j]>nums[j+1]){int temp = nums[j + 1];nums[j + 1] = nums[j];nums[j] = temp;}}}//一行代码解决排序//Array.Sort(nums); //只能针对数组做一个升序排列//Array.Reverse(nums); //反转数组元素//如若进行降序 两个代码配合即可//Array.Sort(nums); Array.Reverse(nums);Console.WriteLine("从小到大排序为:");for (int i = 0; i < nums.Length; i++){Console.Write(nums[i]+" ");}Console.ReadKey();}}}
