首页 > 代码库 > 查找与排序05,冒泡排序
查找与排序05,冒泡排序
在体验了"选择排序"和"插入排序",本篇体验的是"冒泡排序",依次遍历数组中的元素,按照升序排列,如果前一个位置元素比后一个位置元素大,两者就交换位置。
自定义一个处理整型数组的类,包含添加、显示、清除及冒泡方法以及获取数组长度的属性。
class MyIntArray
{private int[] arr;private int upper; //最大索引private int index; //当前索引public MyIntArray(int size){arr = new int[size];upper = size - 1;index = 0;}public int Length{get { return upper + 1; }}public void Insert(int ele){arr[index] = ele;index++;}public void Display(){for (int i = 0; i <= upper; i++){Console.Write(arr[i] + " ");
}}public void Clear(){for (int i = 0; i <= upper; i++){arr[i] = 0;}index = 0;}//冒泡排序:从最后一个索引开始倒数
public void BubbleSort(){int temp;
//从最大的索引开始往前遍历,直到索引为1的位置
for (int i = upper; i >= 1; i--){//从最小的索引开始往后遍历,直到当前元素
for (int j = 0; j <= i - 1; j++){if (arr[j] > arr[j+1])
{temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}}
以上,在冒泡方法中,从最后一个索引开始往前遍历,直到索引为1,然后遍历从索引为0的位置开始,到当前遍历元素的前一个位置,只要发现有左边元素大于右边元素,两者就交换位置。
客户端调用,在排序后再显示。
static void Main(string[] args){MyIntArray nums = new MyIntArray(10);
Random r = new Random(100);
for (int i = 0; i < nums.Length; i++){nums.Insert(r.Next(100));}nums.BubbleSort();nums.Display();}
“查找与排序”系列包括:
查找与排序01,线性查找,时间复杂度,算法
查找与排序02,折半查找
查找与排序03,选择排序
查找与排序04,插入排序
查找与排序05,冒泡排序
查找与排序05,冒泡排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。