五种基础排序-升序实现
插入排序
构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。- void InsertSort(int buf[], int bufsize)
- {
- for (int i = 1; i < bufsize; i++){
- int temp = buf[i];
- int j = i - 1;
- // 只移动,不插入
- while (j >= 0 && buf[j] > temp){
- buf[j + 1] = buf[j];
- j--;
- }
- // 统一插入:位置是 j+1
- buf[j + 1] = temp;
- }
- }
复制代码 冒泡排序
重复地走访要排序的数列,依次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复进行直到没有再需要交换,然后排序完成
[code]void BubbleSort(int buf[], int bufsize){ int Temp = 0; //i从1开始,表示第一轮比较 for(int i=1;i= high),直接返回 if(low |