C#排序方法

冒泡排序法

for(int i=0;inums[j+1])

{

int temp = nums[j];

nums[j] = nums[j+1];

nums[j+1] = temp;

}

}

}

选择排序法

void Sort(int[ ]a) {

int min;//用来存储比较后的元素的最小值

int minindex;//用来记录最小值的下标

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

min = a[i];

minindex = i;

for (int j = i + 1; j < a.Length; j++) {

if (a[j] < min) {

//记录最小值和其所对应的下标

min = a[j];

minindex = j;

}

}

//交换值

a[minindex] = a[i];

a[i] = min;

}

}

相同点:

1.都要通过n-1组排出具有n个数的顺序;

2.都是通过逐个相比,比出最值的;

不同点:

1.冒泡法,顾名思义就是把小的泡冒到上面,大的泡沉到下面,最值在中间和其他的值交换;

而选择法,是假定了一个最值,所以最值和其他的值的交换就发生在假定最值的地方;

二分查找

while (low <= high) {

//mid代表中间索引,不能放到while循环的外面

int mid = (low + high) / 2; if (a[mid] == key) {

Console.WriteLine("find key,index=" + mid); return mid;

}

//如果中间的数大于要查找的数,把后面一半数组去掉

else if (a[mid] > key)

{

high = mid - 1;

}

else  //小于要查找的数,把前面一半的值去掉{

low = mid + 1;

}

}

你可能感兴趣的:(C#排序方法)