日期:2014-05-20 浏览次数:20952 次
private int[] ArraySort(int[] array) { int temp; bool noSwap = true; for (int i = 0; i < array.Length; i++) { for (int j = i + 1; j < array.Length; j++) { if (array[i] > array[j]) { temp = array[i]; array[i] = array[j]; array[j] = temp; noSwap = false; } } if (noSwap) return array;//没有再发生交换,排序结束 else noSwap = true; } return array; }
private static void Shell_Sort(int[] b) { int[] a = new int[b.Length]; b.CopyTo(a, 0); int key; Console.WriteLine("Shell排序"); int gap=5,k; for(;gap>0;gap/=2) for (int j = gap; j < 10; j++) { if (a[j] < a[j - gap]) { key = a[j]; for (k = j - gap; k >= 0 ; k -= gap) { if (key < a[k]) { a[k + gap] = a[k]; } else break; } a[k + gap] = key; } } Print(a); }
------解决方案--------------------
up
------解决方案--------------------
/**
* 插入排序数组
* @author Edwin
* @version 1.1
*/
public class InsertionArray {
/**
* 插入排序数组
* @param lngArr为要排序的数组
*/
public void insertionSort(long[]lngArr)
{
int intOut=0,intIn=0,intElems=lngArr.length;
for(intOut=1; intOut<intElems; intOut++)
{
long temp = lngArr[intOut];
intIn = intOut;
while(intIn>0 && lngArr[intIn-1] >= temp)
{
lngArr[intIn] = lngArr[intIn-1];
--intIn;
}
lngArr[intIn] = temp;
} // end for