上面指出了排序代码我就不多说了
说下排序的知识好了
在数据结构的规范中,排序分了很多种,
1插入排序
直接插入排序
希尔排序
2交换排序
冒泡排序
快速排序
3选择排序
直接选择排序
堆排序
4归并排序
5分配排序
箱排序
基数排序
我觉得这么多排序还是要了解一下,
一楼回答的是直接选择排序
其次你还要应该要理解冒泡排序,快速排序这两种
快速排序是基于比较的内部排序中被很多人认为的最好方法
献上当年学数据结构时的快速排序代码:
帮忙了解下这个排序
C实现- #include<stdio.h>
- void QuickSort(int *a,int low,int high);
- int Findpos(int *a,int low,int high);
- int main(void){
- int i =0;
- int a[6] = {5,6,58,99,0,12};
- QuickSort(a,0,5);
- for(;i<6;i++){
- printf("%d ",a[i]);
- }
- printf("\n");
- return 0;
- }
- void QuickSort(int *a,int low,int high){
- int pos;
- if(low < high){
- pos = Findpos(a,low,high);
- QuickSort(a,low,pos-1);
- QuickSort(a,pos+1,high);
- }
- }
- int Findpos(int *a,int low,int high){
- int val = a[low];
- while(low < high){
- while(low < high && a[high]>=val)
- --high;
- a[low] = a[high];
- while(low < high && a[low] <= val)
- ++low;
- a[high] = a[low];
- }
- a[low] = val;
- return high;
- }
复制代码 |