选择法与插入法

来源:百度知道 编辑:UC知道 时间:2024/05/16 21:01:21
C语言选择法与插入法的区别是什么?
请举个例子,最好是典型程序~
然后说说他们的区别~
5分~
要求详细一谢谢

应该是排序吧,
选择排序的原理:每次在无序队列中“选择”出最小值,放到有序队列的最后,并从无序队列中去除该值(具体实现略有区别)。
插入排序的原理:将元素逐个插入到有序排列之中,其特点是要不断的移动数据,空出一个适当的位置,把待插入的元素放到里面去。有点像我们的排队, 还有打扑克时候的理牌。

选择排序:
public void selectSort(T[] arr){
int pos;
for(int i = 0; i < arr.length; i++){
pos = i;
for(int j = i + 1; j < arr.length; j++){
if(arr[pos].compareTo(arr[j]) > 0){
pos = j;
}
}
if(pos != i){
T tmp;
tmp = arr[pos];
arr[pos] = arr[i];
arr[i] = tmp;
}
}
}

插入排序
public void insertSort(T[] arr){
T data;
int j;
for(int i = 1; i < arr.length; i++){
data = arr[i];
j = i - 1;
while(j >= 0 && arr[j].compareTo(data) > 0){
arr[j + 1] = arr[j];
j--;
}
arr[++j] = data;
}
}
二叉插入排序:
public void binInsertSort(T[] arr){
int index;