冒泡排序算是一种比较经典的排序算法了,我对这个还是记忆比较深的,因为当时记得大学的时候上C 语言课程的时候,老师找了四五个同学到讲台上面,
很荣幸,我就是那其中之一,然后生动的给我们演示了一下冒泡排序,由于我身高还算是比较高的,所以,在第一次冒泡的时候,我就被固定住了,然后就
静静的看着我的同学一次又一次跑到我身边;
比对的过程就跟下面的图一样,此图非原创,原创作者是园友“五分钟算法”,很值得推荐的一个博主,努力向大佬学习 ;
由于比较熟悉C# ,所以分别用for和while 实现了冒泡排序,其实,编程语言不重要,重要的是算法思想,算法逻辑;
一:For循环实现:
for (int i = 0; i<arr.Length - 1; i++) { for (int j = 0; j<arr.Length - i - 1; j++) { if (arr[j] < arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }
二:While循环实现:
int i = 0; while (i <= arr.Length + 1) { int j = 0; while (j < arr.Length - i - 1) { if (arr[j] < arr[j + 1]) //如果左边比右边小,左右换位置 { T temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } j++; } i++; }