选择排序
个人理解:以升序为例,选择排序就是让第几小的元素排到第几个位置上,如:第一次选择该数组第一小的元素然后放入数组位置0,第二次选择第二小的元素放置到数组位置………..
//选择排序
void selectSort(int arr[],int length){
int i,j,temp;
for(i=0;i<=length-2;i++){
for(j=i+1;j<=length-1;j++){
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
冒泡排序
个人理解:以升序为例,有两种冒泡方式,一种是从前往后,一种是从后往前,这里从前往后分析,第一次需要最大的元素冒泡到最后,第二次需要第二大的元素冒泡的倒数第二个位置…………………
/冒泡排序升序列
void bubbleSort(int arr[],int length){
int i,j,temp;
for(i=0;i<=length-2;i++){
for(j=0;j<=length-2-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
插入排序
插入排序是一种基于递归的思想的排序方法,数组arr[0,n-1],假设数组arr[0,n-2]已近为有序,那么使得arr[n-1]插入数组arr[0,n-2],即得到有序数组arr[0,n-1].所以从arr[0]开始,插入数组元素arr[1],得到有序数组arr[0,1],再插入数组元素arr[2]即得到数组arr[0,2]……………….
void insertionSort(int arr[],int length){
int i,j,value;
for(i=1;i<=length-1;i++){
value=arr[i];
j=i-1;
while(j>=0&&value<arr[j]){
arr[j+1]=arr[j];
j--;
}
arr[j+1]=value;
}
}
本文详细介绍了三种基本的排序算法——选择排序、冒泡排序和插入排序的实现原理与过程。通过具体的代码实例,帮助读者理解每种算法的工作机制,包括如何通过比较和交换来对数组进行排序。
2069

被折叠的 条评论
为什么被折叠?



