Java和 C#冒泡排序法。 我只是理解。但是不知道怎么写。 循环也会写,就是写不好if条件
解决方案 »
- 异步socket时send数据包后EndReceive
- 创建触发器后就插入不了数据???
- 如何实现可以随意拖放控件位置的类似于报表设计的功能,提供个基本思路也可以, 有源码我出银子~!
- 存储过程,不明白参数如何被调出来的,着急!
- C#数据库新手
- 不通过循环如何根据name定位datagrid?
- ADO.NET访问SQL SERVER数据库表数据时以下两种方式哪一种比较好?
- 求一正则表达式,顶者有分。
- C#中什么方法能够直接将json字符串转换为HashMap?
- winform如何做一个菜单跟随光标的效果
- C#传参求解!!大哥们...
- C#:如果通过向服务器发送请求达到QQ空间刷留言的一个效果?(学习用)
// array of integers to hold values
private int[] a = new int[100];// number of elements in array
private int x;// Bubble Sort Algorithm
public void sortArray()
{
int i;
int j;
int temp; for( i = (x - 1); i >= 0; i-- )
{
for( j = 1; j <= i; j++ )
{
if( a[j-1] > a[j] )
{
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
}
}
}
代码来自:
http://www.publicjoe.f9.co.uk/csharp/sort01.html
{
int i,j,temp;
int[] a = new int[101];
for(i = 1;i<=100;i++) a[i] = rand.Next(100);//随机产生100个100以内的整数//先拿第一个依次跟后面的99个比较大小,如果小于则交换值 这样最大的数就放在数组a[1]的位置了
//再拿第二个依次跟后面的98个比 第二大的数就放在了数组a[2]里
//以此类推 一直到第99个跟第100个比完 则排序OK
for(i=1;i<=99;i++)
for(j=i+1;j<=100;j++)
if (a[i]<a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}//在textBox1显示数组
string str="";
for (i=1;i<=100;i++)
{
str += a[i].ToString().PadRight(2,' ') + " ";
if (i%10==0) str +="\r\n";
}
this.textBox1.Text = str;
}
不会写if条件,就是不会设计了!恐怕你看不懂设计代码.....
假设针对IList<T>,可以这样写:public static void 冒泡排序<T>(IList<T> array) where T : IComparable<T>
{
int k;
T temp;
for (int i = 1; i < array.Count; i++)
for (int j = i; j < array.Count; j++)
{
k = j - 1;
if (array[k].CompareTo(array[j]) > 0)
{
temp = array[k];
array[k] = array[j];
array[j] = temp;
}
}
}
int[] array=new int[]{5,2,9,4,25,21,18,16,17};
int i=0,j=0;
int temp=0;//叫做第三方变量
for(i=0;i<array.length;i++)
{
for(j=0;j<array.length-i-1;j++)
{
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
{
int k;
T temp;
for (int i = 1; i < array.Count; i++)
for (int j = 1; j < array.Count; j++)
{
k = j - 1;
if (array[k].CompareTo(array[j]) > 0)
{
temp = array[k];
array[k] = array[j];
array[j] = temp;
}
}
}j=1 而不是 j=i。但是不管这里写什么“冒泡”的含义就是每一次都只是交换相邻的两个元素,绝对不是选择很远的两个元素去交换。首先要保证是这一点,才是冒泡排序的逻辑含义。