c#算法之冒泡排序
做.net4年,连冒泡我都还没有搞清楚,每次面试我都是默默的记下代码,里面的原理一直没有搞清楚,现在我终于清楚是怎么回事了!
例:List<int> list={1,2,9,3,7,8,5,6}; 把这个数组里面的数从小到大进行排序。
思路:依次进行排序:第一次{1,2,3,7,8,5,6,9};第二次{1,2,3,7,5,6,8,9};第三次{1,2,3,5,6,7,8,9}
int[] list = { 1, 2, 9, 3, 7, 8, 5, 6 };
for(int i=0;i<list.Length-1;i++) //list.length-1是因为长度都是从1开始算起,而索引的下标都是从0开始的,所以要length-1
{
for (int j = 0; j < list.Length - 1 - i; j++)//子循环里面list.Length - 1 - i 是因为每次循环完,最后i个数是固定的,不用交换位置排序,所以- i
{
if (list[j] > list[j + 1])//list[j]>list[j+1] 是从小到大进行排序,list[j]<list[j+1] 是从大到小进行排序
{
int temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
foreach (var item in list)
{
Console.WriteLine(item);
}
终于靠自己完全理解了,,,如果写的不好,麻烦不要介意,欢迎指出,第一次写博客还是满紧张和兴奋的。

浙公网安备 33010602011771号