C 編寫的 8種初級 高階排序方法

2021-05-27 16:08:54 字數 4353 閱讀 1907

程式**:

view plain

copy to clipboard

print?

using system; 

using system.collections.generic; 

using system.linq; 

using system.text; 

namespace c_sharp_sort 

;  heapsort(test7, 0, 9);                                         //堆排序

foreach (int a in test7) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test6 = ; 

radixsort(test6, 0, 9, 2);                                         //基數排序(第4個引數是陣列中最大數的10的最大次瞑)

foreach (int a in test6) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test0 = ;          

insertsort(test0, 10);                                             //插入排序

foreach (int a in test0) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test1 = ; 

newinsertsort(test1, 10);                                          //折半插入排序

foreach (int a in test1) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test2 = ; 

shellsort(test2, 10);                                             //希爾排序

foreach (int a in test2) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test3 = ; 

paopaosort(test3, 10);                                            //氣泡排序

foreach (int a in test3) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test4 = ; 

fastsort(test4, 0, 9);                                            //快速排序

foreach (int a in test4) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

int test5 = ; 

selectsort(test5, 10);                                           //選擇排序

foreach (int a in test5) 

console.write(a.tostring().padright(4)); 

console.writeline(); 

console.read(); 

}  static

public

void heapsort(int array, int begin, int end)          //堆排序

else

if (array[2 * j + 1] < array[2 * j + 2] && array[2 * j + 2] > array[j]) 

else

break; 

}  else

break; 

}  } 

}  for (length = end; length > begin; length--)                              //首尾交換

else

if (array[2 * j + 1] < array[2 * j + 2] && array[2 * j + 2] > array[j]) 

else

break; 

}  } 

}  } 

static

public

void insertsort(int array, int length)   //直接插入排序

}  array[j+1]=temp; 

}  } 

static

public

void newinsertsort(int array, int length)   //折半插入排序

else

if (low == high - 1) 

else

if (array[j] < temp) 

else

if (array[j] > temp) 

else

break;                   

}  for (int n = i-1 ; n >= j; n--) 

array[n + 1] = array[n]; 

array[j] = temp; 

}  } 

static

public

void shellsort(int array, int length)                 //希爾排序(基於直接插入排序)

}  array[k + delta] = temp; 

}  j -= delta; 

if (array[j] < array[i])                              //2組之間首位進行交換排序

}  delta /= 2; 

}  } 

static

public

void paopaosort(int array, int length)          //氣泡排序

}  j--; 

}  } 

static

public

void fastsort(int array, int begin,int end)         //快速排序

while (temp > array[left] && right > left) 

left++; 

if (right > left) 

}  array[right] = temp; 

fastsort(array, right + 1, end); 

fastsort(array, begin, right-1);           

}  static

public

void selectsort(int array, int length)        //選擇排序

}  temp_array = array[i]; 

array[i] = array[temp]; 

array[temp] = temp_array; 

i++; 

}            

}  static

public

void radixsort(int array, int begin,int last, int pow)     //基數排序

;  int x, p = pow, n,i; 

while (p >= 0) 

sum=sum%10; 

switch (sum) 

}  //for

x=n=0; 

for (i=0;i<10;i++) 

}           

p--;}    //while

}  } 

8種php基本排序實現方法

許多人都說演算法是程式的核心,演算法的好壞決定了程式的質量。因此對於基本的排序演算法還是應該掌握的,它是程式開發的必備工具。這裡介紹氣泡排序,插入排序,選擇排序,快速排序等等演算法,分析一下演算法的思路。1.氣泡排序 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行...

8種排序其中的五種

時間久了就忘了,把以前的 拿出來整理一下 插入排序 直接插入排序 straight insertion sort 結構圖 system.out.println 初始值 obj.print a obj.insertsort a system.out.println n排序後 obj.print a p...

C 語言下編寫的簡單排序方法 桶排序

桶排序思想較為簡單,是最簡單的一種排序方法,其好處在於容易處理簡單的排序,壞處在於對數值較大的排序的話對陣列空間要求大,例如對5個0 1000之間的數排序,只需要迴圈讀入五個數,定義乙個book 1001 的陣列,先將book陣列迴圈置為0,然後讀到數n,則book n 最後利用雙重迴圈將資料輸出即...