C 语言 实现int数组的插值排序/*** Insert Sort ***/#include <stdio.h>// 将int数据打印出来void PrintArr(int* a,int len){for (int i = 0;i<len;i++) { printf(" %d ",a[i]); } printf("\n");}void InsertSort(int* arr,int len)...
1、C语言9种常用排序法1.冒泡排序2.选择排序3.插入排序4.快速排序5.希尔排序6.归并排序7.堆排序8.带哨兵的直接插入排序9.基数排序例子:乱序输入n个数,输出从小到大排序后的结果1.冒泡排序#includeint main() int i, j, n, a100, temp; while(scanf(%d,&n)!=EOF) for(i=0;in;i+) scanf(%d,&...
voidShellSort(int*a,intn){intgap=3;for(inti=0;i<gap;i++){for(inti=0;i<n-gap;i+=gap){// [0,end]有序,把end+1位置的值插入,保持有序intend=i;inttmp=a[end+gap];while(end>=0){if(tmp1){gap=gap/3+1;for(inti=0;i<n-gap;i++){// [0,end]有序,把end+1位置的值插入,...
1、#include#include/冒泡排序void bubleSort(int data, int n);/快速排序void quickSort(int data, int low, int high);int findPos(int data, int low, int high);/插入排序void bInsertSort(int data, int n);/希尔排序void shellSort(int data, int n);/选择排序void selectSort(int data, int...
1.冒泡排序 冒泡排序是为了让两个数两两比较,然后较大的沉底 每一次让最大的拍到最后,然后形成依次从右向左递减的数组 #include<stdio.h>//冒泡排序intmain(){intnum[10]={3,0,1,8,7,2,5,4,9,6};//被排序数组inttemp;//用来中转的数
你这个算法就是从大到小排序的。if(raw[i]<raw[i+1]) //i比i+1小就调换,那不是i要求比i+1的值大???{ t=raw[i];raw[i]=raw[i+1];raw[i+1]=t;} 改成:if(raw[i]>raw[i+1])//这个就是从小到大排序了 { t=raw[i];raw[i]=raw[i+1];raw[i+1]=t;} ...
for(int i= 1; i<n; i++){ if(a[i] < a[i-1]){ //若第i个元素大于i-1元素,直接插入。小于的话,移动有序表后插入 int j= i-1; int x = a[i]; //复制为哨兵,即存储待排序元素 a[i] = a[i-1]; //先后移一个元素
下面是选择排序的C语言实现示例:voidselectionSort(int arr[], int n){int i, j, min_idx, tmp;// 外层循环表示已排序部分的末尾索引,从0开始for (i = ; i < n-1; i++) {// 内层循环从未排序部分中找到最小的元素 min_idx = i;for (j = i+1; j < n; j++) {if (arr[j] < a...
int main(void) { int a[10], i, j, t; printf("请输入10个数字:\n"); /*输入源数据*/ for (i = 0; i < 10; i++) scanf_s("%d", &a[i]); /*排序*/ for (j = 0; j < 9; j++) /*外循环控制排序趟数,n个数排n-1趟*/ { for (i = 0; i < 9 - j; i++) /*...