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("该数不存在");
}
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("该数不存在");
}
相关文章推荐
- Python实现冒泡,插入,选择排序简单实例
- Java实现简单排序——冒泡、选择、插入、奇偶排序
- java简单实现冒泡 快速 选择排序
- 《面试》 几种经典的简单的排序方法(冒泡,选择,插入)python实现
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- (数据结构排序的实验四)快速,冒泡,简单选择,直接插入排序的c语言实现!!
- 排序:简单排序算法实现:冒泡,选择,插入
- 数据结构(C#)--冒泡、插入、快速、堆、归并、希尔、选择各种排序排序过程比较以及各种排序的所用时间的对比
- Python实现冒泡,插入,选择排序简单实例
- 冒泡以及直接选择排序的JAVA实现
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序
- C# 实现排序--冒泡--选择--插入
- 简单选择排序的Java实现、性能分析以及适用场景
- 史上最简单!冒泡、选择排序的Python实现及算法优化详解
- 简单选择、冒泡、插入排序思想及Java实现代码
- Java中实现简单的三大排序——冒泡、选择、插入
- C#笔记25:比较和排序(IComparable和IComparer以及它们的泛型实现)
- C#实现所有经典排序算法(选择排序,冒泡排序,快速排序,插入排序,希尔排序)
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序