“活到老,学到老”,人生正是一个不断学习,不断完善的过程,前面的 C#学习日记 我们先告一段落(不是结束^_^),现在开始新的旅程,学一学算法吧!
回想我门学C的时候,在老师的带领下我门接触到了算是我人生中的第一个算法——冒泡排序(BubbleSort)。
顾名思义,冒泡排序它排序数组元素的过程总是将小数往前放、大树往后放,类似水中气泡往上升的动作。
冒泡排序的基本思想是对比相邻的元素值,按照较小元素在前面,较大元素在后面的规则交换两元素的值,经过层层对比与交换,最终形成一个递增的数列。
还是说个例子吧:要求对 63,4,24,1,3,15 这个数列进行从小到大排序,我们分别用C++、C#、java来实现(以后都会如此的)
#include<iostream> #include<cstdlib> using namespace std; //声明输出函数 void ShowArray(int *a,int L); //定义冒泡函数 void BubbleSort(int *array,int Length) { for(int i=1;i<Length;i++) //这个for控制循环趟数 { for(int j=0;j<Length-i;j++) //这个for循环控制相邻两辆比较、交换 { if(array[j]>array[j+1]) { //交换 int temp; temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } ShowArray(array,Length); } //输出函数 void ShowArray(int *array,int Length) { for(int i=0;i<Length;i++) { cout<<array[i]<<" "; } cout<<endl; } void main() { //定义一个数组 int array[]={63,4,24,1,3,15}; //算出数组长度 int Length = sizeof(array)/sizeof(array[0]); //冒泡排序输出 BubbleSort(array,Length); }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BubbleSort { class Sort {//定义冒泡方法 public void BubbleSort(int[] array) { for (int i = 1; i < array.Length; i++) //控制循环趟数 { for (int j = 0; j < array.Length - i; j++) //相邻两数满足条件就交换 { if(array[j]>array[j+1]) {//交换 int temp; temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } ShowArray(array); } //输出方法 public void ShowArray(int[] array) { foreach (int i in array) { Console.Write(i + " "); } Console.WriteLine(); } static void Main(string[] args) { int[] array = new int[]{63,4,24,1,3,15}; Sort sorter = new Sort(); sorter.BubbleSort(array); } } }
以上两个实例的结果:
package Sort; public class BubbleSort { public void sort(int[] array){ for(int i=1;i<array.length;i++){ for(int j=0;j<array.length-i;j++){ if(array[j]>array[j+1]){ int temp = array[j]; array[j] = array[j+1]; array[j+1]=temp; } } } showArray(array); } public void showArray(int[] array){ for(int i:array){ System.out.print(i+" "); } System.out.println(); } public static void main(String[] args) { int array[] = {63,4,24,1,3,15}; BubbleSort sorter = new BubbleSort(); sorter.sort(array); } }
结果 :
冒泡排序就是如此了,后面还会相继介绍几个常用的排序,有什么错误的地方欢迎您指出来^_^
版权声明:本文为博主原创文章,未经博主允许不得转载。
C++、C#、java算法学习日记01---冒泡排序(BubbleSort)
原文:http://blog.csdn.net/hc666/article/details/49487395