从大学当中学习了数据结构与算法这一门课程以来,就对排序算法有了一定的了解,认识还谈不上,但经常遇到的就是一个冒泡排序法。以前也用过几次,但一直没有仔细去看,也是怪自己学习不认真,按照自己的思路去学习理解了。所以一直是一种错误的冒泡呀。今天找到一份资料学习复习C#,认真看了一下一些基础知识,这里面就讲解了冒泡排序法,一对比,这才发现我的冒泡是错误的。
我的思路是这样的
for (int i = 0 ;i <array.Length -1;i++)
for (int j = i; j < array.Length; j++)
{
if (array[j] < array[i])
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
然而正确的冒泡是这样的:
for (int i = 0 ;i <array.Length -1;i++)
for (int j = 0; j < array.Length-1-i; j++)
{
if (array[j] < array[j+1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
虽然我能实现排序,但没有达到冒泡的目的。因为这也是我昨天应聘当的一道笔试题,还很有把握正确的。没有想到今天就发现自己不对了,看来一直都是粗心的学习,得养成细心的习惯了。写程序就得注意细节,再不能马虎了。认真学习,抓好基础知识,一步一个脚印,要学就要学好。