C基础--八大排序(个人笔记)
| 来源: 区块链科技报 | 浏览:1767



冒泡排序:两两对比交换 //该写法错误,应该把length放在Main方法 void bubble(int arr[]){ //数组参数传入的是指针 int length = sizeof(arr)/sizeof(int); //此时length=2; for(int j=0;j
arr[i+1]){ int temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; } } } for(int i=0;iarr[j]){ minIndex=j; } } //下标i的位置与最小值的位置进行交换 int temp=arr[i]; arr[i]=arr[minIndex]; arr[minIndex]=temp; } } //主方法 int main(){ int arr[]={3,4,23,8,6,9,19}; int length=sizeof(arr)/sizeof(int); simple(arr,length); for(int i=0;i=0;j--){ if(arr[j+1]=1;h/=2){ for(int i=h;i=0;j-=h){ if(arr[j]>arr[j+h]){ int temp=arr[j]; arr[j]=arr[j+h]; arr[j+h]=temp; } } } } } 快速排序:通过一趟排序将待排序列分成独立的两部分,其中一部分的所有元素都比另一部分的所有元素小,然后再分别对这两部分进行排序,以达到整个序列有序。 (关于递归)--变量直接作为参数 void sort(int arr[],int left,int right,int i,int j){ if(left>=right){ return; } int base=arr[left]; i=left; j=right; while(i!=j){ while(arr[j]>=base && i