C#学习6(数组反转、冒泡排序、排序)

版权声明:转载请标明原文章地址 https://blog.csdn.net/weixin_41543617/article/details/88769049

1.将一个数组中的元素的顺序进行反转:

前后对应元素互相交换即可,
例如定义一个数组为string[] names = {a,b,c,d,e,f};
换成:f d e c b a
第一次交换:a 和 f i = 0;names[i] names[names.Length-1-i]
第二次交换:b 和 e i = 0;names[i] names[names.Length-1-i]
第三次交换:c 和 d i = 0;names[i] names[names.Length-1-i]
循环次数:names.Length/2
代码如下:

            string[] names = { "abc", "Hello", "张三", "哇哈哈哈哈", "金X恩"};

            for (int i = 0; i < names.Length/2; i++)
            {
                string temp = names[i];
                names[i] = names[names.Length - 1 - i];
                names[names.Length - 1 - i] = temp;
            }

            for (int i = 0; i < names.Length; i++)
            {
                Console.WriteLine(names[i]);
            }
            Console.ReadKey();

2.冒泡排序:

int[] nums = {9,8,7,6,5,4,3,2,1,0};
变为升序;
第一趟比较:8 7 6 5 4 3 2 1 0 9交换了9次
第二趟比较:7 6 5 4 3 2 1 0 8 9交换了8次
以此类推
比较9趟,外循环为比较趟数,内循环元素交换

for(int i=0;i<nums.Length-1;i++)
{
	for(int j=0;j<nums.Length-1-i;j++)
	{
		if(nums[j]>nums[j+1])
		{
			int temp=nums[j];
			nums[j]=nums[j+1];
			nums[j+1]=temp;
		}
	}
}

3.排序方法:

Array.Sort(nums);对数组进行升序排列
Array.Reverse(nums);对数组进行反转,不能进行升序或降序排列
二者结合可对所有数组进行升序或降序排列
升序:直接Array.Sort();
降序:先Array.Sort();再Array.Reverse();反转

猜你喜欢

转载自blog.csdn.net/weixin_41543617/article/details/88769049