您的位置:首页 > 编程语言 > C#

C#实现简单的冒泡、选择排序以及二分查找法

2018-01-02 21:21 323 查看
   //冒泡 排序

int[] arr = new int[7] { 10, 53, 4, 78, 6, 3, 56 };

for (int i = 0; i < arr.Length - 1; i++)
{

//因为之前循环的数都已经排列好顺序,所以不必再次运行一次了

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

//选择排序
int[] arr = new int[7] { 10, 53, 4, 78, 6, 3, 56 };
int min;
int minIndex;
for (int i = 0; i < arr.Length; i++)
{
min = arr[i];
minIndex = i;
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[j] < min)
{
min = arr[j];
minIndex = j;
}
}
arr[minIndex] = arr[i];
arr[i] = min;
}
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}

二分查找
int[] arr = new int[8] { 1, 2, 3, 4, 5, 6, 7, 8 };
int len = arr.Length;
int low = 0;
int high = arr.Length-1; //减一是因为运行是以防数组越界
int x = int.Parse(Console.ReadLine());
while (low <= high)
{
int mid = (low + high) / 2;
if (arr[mid] == x)
{
int count = mid + 1;
Console.WriteLine(x + "是第" + count + "个数");
break;
}
else if (arr[mid] < x)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
if (low > high)
{
Console.WriteLine("该数不存在");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐