1.氣泡排序
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 排序演算法練習
/// /// 從小排序
///
public override void minsort()}}
}public override void maxsort()}}
}public override void display()
",item);
}console.writeline("迴圈次數 counter = ", counter);}}
}
2.選擇排序
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 排序演算法練習
public override void minsort()
}temp = temparray[i];
temparray[i] = temparray[minindex];
temparray[minindex] = temp;}}
public override void maxsort()
public override void display()
console.writeline("迴圈次數 counter " + counter);}}
}
3.快速排序
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 排序演算法練習
public override void display()
", item);}}
public override void maxsort()
public override void minsort()
int number = 0;
#region 方案一
private int sortunit(int array, int left, int right)
//right==left,去乙個索引存放key
array[left] = key;//
number++;
console.writeline("第次排序", number);
foreach (int i in array)
\t", i);
}console.writeline();
return right;
}private void sort(int array, int left, int right)
#endregion
#region 方案2:方案1的簡化版
void sort2(int nums, int left, int right)
nums[i] = key;
if(i-1 > left)sort2(nums, left, i - 1);
if(j+1 < right)sort2(nums, j + 1, right);
}#region 方案3
void sort3(int nums, int left, int right)
if(i-1 > left) sort3(nums, left, i - 1);//計算左邊的數列
if(j+1 < right) sort3(nums,j+1,right);//計算右邊的數列}}
}
排序演算法學習
一直都想把排序和搜尋類的演算法總結一下,一直拖著沒寫,主要是太懶了,現在決定還是要再好好學習下這些基本的演算法。畢竟基礎真的是很重要。好了現在開始學習第乙個排序演算法 插入排序 我記得插入排序在我們以前的資料結構教程上是第乙個介紹的 插入排序 聽這個排序名字就是將乙個什麼數要插入到某個地方,不錯,他...
排序演算法學習
快速排序演算法 通過一趟排序將資料分成兩部分 其中一部分的資料要比 另外一部分小或大 利用遞迴進行 直至資料有序 演算法步驟 1.定義兩個指標分別指向低位和高位 2.將陣列第乙個元素作為基數 3.從後往前遍歷 high 直至找到第乙個小於key的值 4.從前往後遍歷 low 直至找到第乙個大於key...
排序演算法學習
include include include include include define n 10000500 long long beg int cnt,n void show time void swap int a,int b 稱這兩個函式為比較函式,函式名即相當於指標,將其寫入排序演算法...