C#学习笔记记录,冒泡和选择排序,二分查找代码实现。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace learnCSharp
{
class Sort
{
public int[] num = new int[] { 2, 1, 0, 3, 5, 6, 8, 9, 7, 4 };
/// <summary>
/// 二分查找 返回index 必须是顺序存储结构 需要先排序
/// </summary>
public int BinarySearch(int k)
{
int min=0;
int max=num.Length-1;
int mid=0;
while (min<=max)
{
mid = (min + max) / 2;
if (k < num[mid])
{
max = mid - 1;
}
else if(k > num[mid])
{
min = mid + 1;
}
else
{
return mid;
}
}
return -1;
}
/// <summary>
/// 取最小值
/// </summary>
public void Min()
{
for(int i = 0; i < num.Length-1; i++)
{
for(int j = i + 1; j < num.Length; j++)
{
if (num[j] < num[i])
{
int t = num[j];
num[j] = num[i];
num[i] = t;
}
}
}
Console.WriteLine(num[0]);
}
/// <summary>
/// 选择排序
/// </summary>
public void Select()
{
for (int i = 0; i < num.Length - 1; i++)
{
int pos = i;
for (int j = i + 1; j < num.Length; j++)
{
if (num[j] < num[pos])
{
pos = j;
}
}
int t = num[i]; //待排序中最小/大的和序列最前的元素交换
num[i] = num[pos];
num[pos] = t;
}
foreach (int i in num)
{
Console.Write(i + " ");
}
}
/// <summary>
/// 冒泡排序
/// </summary>
public void Bubbling()
{
for (int i = 0; i < num.Length-1; i++)
{
for(int j = i + 1; j < num.Length; j++)
{
if (num[i] >= num[j])
{
int t = num[i];
num[i] = num[j];
num[j] = t;
}
}
}
foreach(int i in num)
{
Console.Write(i + " ");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace learnCSharp
{
class Program
{
static void Main(string[] args)
{
Sort sort = new Sort();
//sort.Bubbling();
sort.Select();
//sort.Min();
Console.WriteLine();
Console.WriteLine(sort.BinarySearch(5));
Console.ReadKey();
}
}
}
没有评论:
发表评论