快速、选择、冒泡排序算法
2011-01-27 13:58
176 查看
protected void Button1_Click(object sender, EventArgs e)
{
int[] arr=new int[100];
Random rd=new Random();
for(int i=0;i<100;i++)
{
arr[i] = rd.Next(1,1000);
}
// QuickSort(arr,0,arr.Length-1);
// SelectSort(arr);
BubbleSort(arr);
string str="";
for (int i = 0; i < arr.Length; i++)
{
str = str + arr[i] + ",";
}
this.TextBox1.Text = str;
}
/// <summary>
/// 快速排序法,从小到大排序
/// </summary>
/// <param name="arrList"></param>
/// <param name="left"></param>
/// <param name="right"></param>
private void QuickSort(int[] arrList,int left,int right)
{
int arrlen = arrList.Length;
int i = left, j = right;
if (i > j) return;
//以第一个数为参照做比较
int key = arrList[i];
while (i<j)
{
//从后向前判断
while (i < j)
{
if (key > arrList[j])
{
arrList[i] = arrList[j];
i++;
break;
}
j--;
}
//从前向后判断
while (i < j)
{
if (key < arrList[i])
{
arrList[j] = arrList[i];
j--;
break;
}
i++;
}
}
arrList[i] = key;
QuickSort(arrList, left, i - 1);
QuickSort(arrList, i+1,right);
}
/// <summary>
/// 选择排序法,从小到大排序
/// </summary>
/// <param name="arrList"></param>
private void SelectSort(int[] arrList)
{
int min;
for (int i = 0; i < arrList.Length - 1; i++)
{
min = i;
for (int j = i + 1; j < arrList.Length; j++)
{
if (arrList[min] > arrList[j])
{
min = j;
}
}
int tmp = arrList[i];
arrList[i] = arrList[min];
arrList[min] = tmp;
}
}
/// <summary>
/// 冒泡排序法,从小到大排序
/// </summary>
/// <param name="arrList"></param>
public void BubbleSort(int[] arrList)
{
for (int i = 0; i < arrList.Length; i++)
{
for (int j = 0; j < arrList.Length - 1; j++)
{
if (arrList[j] > arrList[j + 1])
{
int tmp = arrList[j];
arrList[j] = arrList[j + 1];
arrList[j + 1] = tmp;
}
}
}
}
{
int[] arr=new int[100];
Random rd=new Random();
for(int i=0;i<100;i++)
{
arr[i] = rd.Next(1,1000);
}
// QuickSort(arr,0,arr.Length-1);
// SelectSort(arr);
BubbleSort(arr);
string str="";
for (int i = 0; i < arr.Length; i++)
{
str = str + arr[i] + ",";
}
this.TextBox1.Text = str;
}
/// <summary>
/// 快速排序法,从小到大排序
/// </summary>
/// <param name="arrList"></param>
/// <param name="left"></param>
/// <param name="right"></param>
private void QuickSort(int[] arrList,int left,int right)
{
int arrlen = arrList.Length;
int i = left, j = right;
if (i > j) return;
//以第一个数为参照做比较
int key = arrList[i];
while (i<j)
{
//从后向前判断
while (i < j)
{
if (key > arrList[j])
{
arrList[i] = arrList[j];
i++;
break;
}
j--;
}
//从前向后判断
while (i < j)
{
if (key < arrList[i])
{
arrList[j] = arrList[i];
j--;
break;
}
i++;
}
}
arrList[i] = key;
QuickSort(arrList, left, i - 1);
QuickSort(arrList, i+1,right);
}
/// <summary>
/// 选择排序法,从小到大排序
/// </summary>
/// <param name="arrList"></param>
private void SelectSort(int[] arrList)
{
int min;
for (int i = 0; i < arrList.Length - 1; i++)
{
min = i;
for (int j = i + 1; j < arrList.Length; j++)
{
if (arrList[min] > arrList[j])
{
min = j;
}
}
int tmp = arrList[i];
arrList[i] = arrList[min];
arrList[min] = tmp;
}
}
/// <summary>
/// 冒泡排序法,从小到大排序
/// </summary>
/// <param name="arrList"></param>
public void BubbleSort(int[] arrList)
{
for (int i = 0; i < arrList.Length; i++)
{
for (int j = 0; j < arrList.Length - 1; j++)
{
if (arrList[j] > arrList[j + 1])
{
int tmp = arrList[j];
arrList[j] = arrList[j + 1];
arrList[j + 1] = tmp;
}
}
}
}
相关文章推荐
- java实现快速排序、插入排序、选择排序、冒泡排序算法
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序
- java实现快速排序、插入排序、选择排序、冒泡排序算法
- 选择 插入 快速 冒泡排序算法的比较
- java 排序算法总结(冒泡,选择,插入,快速)
- 编程实现直接插入排序、希尔排序、冒泡排序、快速排序、选择排序
- php -- 四种基础排序:冒泡、选择、插入、快速
- 求无序数组中第二大的数--快速选择
- js排序算法总结——冒泡,快速,选择,插入,希尔,归并
- OC学习之道:数据结构中几种常见的排序算法:选择排序,插入排序.快速排序
- 为什么选择快速开发?
- 快速选择实例
- 快速添加string value Refactor->android->Extract Android String 或按Ctrl+1 出现列表框选择Extract Android String 来进行String国际化
- 二种卫星地图的快速比较和选择方法
- 直接选择排序算法和冒泡排序算法的介绍及实现
- HEVC中快速块选择时出现Minrosoft Visual C++ Runtime Library 错误的解决办法
- java基本排序算法-插入排序-快速排序-选择排序-冒泡排序
- 快速排序,冒泡排序算法
- js 排序 冒泡、快速、选择、插入