c#笔记 冒泡排序·6.0

有符号整形:long int short sbyte
无:ulong uint ushort byte
浮点型:decimal(m) float(f) duble
特殊类型:bool string("") char('')

值和引用类型:

值类型:除了上面三个都是+结构体(相互赋值,他变我不变)
引用类型:string ,数组,类 (相互赋值时候,他变我也变)
为什么会有这种区别:
值和引用类型在内存中的存储区域不同
值:栈空间:系统分配,自动回收小而快
引用类型:存储在堆空间,手动申请和释放,大而慢


冒泡排序:将数组元素从大到小/从小到大顺序排列

            int[] gender = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };//建立一个有10个元素的数组

            for (int i = 0; i < gender.Length - 1; i++)//将gender数组降序排列,大循环9次(这个大循环意思是总共要有9次小循环比较,第一次把0挪到最后一位,第二次把1挪到倒数第二位,第三次把2挪到倒数第三位...................)
            {
                for (int b =0; b < gender.Length - 1 - i; ++b)//这个for是:把0挪到最后一位需要比几次?0和1比,0和2和3和4和5和6和7和8和9比;;;为什么int b=0而不是int b=gender[0]?(因为gender[0]是会变化的,当i=0的时候执行一次If之后,数组的第一和第二个数值已经交换了,所以此时的gender[0]不是0而是1)
                {
                    if (gender[b] < gender[b + 1])
                    {
                        int max = gender[b + 1];
                        gender[b + 1] = gender[b];
                        gender[b] = max;
                        //why  int b=0!=int b=gender[0]

                    }

                }
            }
            for (int i = 0; i < gender.Length-1; i++)//将gender数组降序排列,大循环Leng-1次
            {
                Console.WriteLine(gender[i]);
            }

Array.sort(数组名);//升序排列1,2,3,4,5(只对于数字可用,对于字符串无法排序)
Array.reverse(数组名);//对数组倒序排列          遍历
array.sort     之后array.reverse//降序:先升序再倒叙


for()//for循环之后不能出现;否则会检测不到for()中的内容
 

上一篇:050.JAVA线程_线程通信的实现和死锁现象


下一篇:Java开发基础篇SE中this关键字的含义与使用