有没有专门搞网站上线的公司,宁波网站建,长春网站建设哪里好,网站静态页手撕排序
#xff08;写的时候别忘了关提示#xff0c;很多时候负面#xff0c;给我错的代码还分心自己#xff09;
#xff08;小心别敲错一些变量#xff0c;算法对了但是结果有问题#xff0c;顺着逻辑梳理#xff0c;看变量敲没敲错#xff09;
冒泡排序
原理写的时候别忘了关提示很多时候负面给我错的代码还分心自己小心别敲错一些变量算法对了但是结果有问题顺着逻辑梳理看变量敲没敲错冒泡排序原理扫描比较相邻不按顺序就交换也可以理解为把第几大的依次放到后面packagesort;importjava.util.Scanner;publicclassmaopao{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intnsc.nextInt(),a[]newint[n];for(inti0;in;i){a[i]sc.nextInt();}for(inti0;in;i){for(intj0;jn-i;j){if(j!n-i-1a[j]a[j1]){inttempa[j];a[j]a[j1];a[j1]temp;}}}for(inti0;in;i){System.out.print(a[i] );}}}选择排序原理依次选最几小/大放到前面packagesort;importjava.util.Scanner;publicclassxuanze{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intnsc.nextInt(),a[]newint[n];for(inti0;in;i){a[i]sc.nextInt();}for(inti0;in;i){intminInteger.MAX_VALUE,wz-1;for(intji;jn-1;j){if(a[j]min){mina[j];wzj;}}intsuma[i];a[i]min;a[wz]sum;}for(inti0;in;i){System.out.print(a[i] );}}}快速排序原理分治分区核心是分区每次选基准值要保证基准最左边的都比他小右边的都比他大可以理解为每次排好基准值对应的那个元素分治就全排完。packagesort;importjava.util.Scanner;publicclassquick{staticintn,a[]newint[100005];publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);nsc.nextInt();for(inti0;in;i){a[i]sc.nextInt();}sort(0,n-1);for(inti0;in;i){System.out.print(a[i] );}}staticvoidsort(intl,intr){if(lr)return;intzjkp(l,r);sort(l,zj-1);sort(zj1,r);}staticintkp(intl,intr){intsuma[l];while(lr){while(lra[r]sum){r--;}if(lr){a[l]a[r];l;}while(lra[l]sum){l;}if(lr){a[r]a[l];r--;}}a[l]sum;returnl;}}归并排序原理分治合并两个有序数组合并细节可能有点麻烦hot100应该都做过来链表版本的合并吧这里就是换成了数组主要也是注意一些边界细节啥的packageguibing;importjava.util.Scanner;publicclassguibing{staticintn,a[]newint[100005];publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);nsc.nextInt();for(inti0;in;i){a[i]sc.nextInt();}guib(0,n-1);for(inti0;in;i){System.out.print(a[i] );}}staticvoidguib(intl,intr){if(lr)return;intmidl(r-l)/2;guib(l,mid);guib(mid1,r);intcd1mid-l1,cd2r-mid,az[]newint[cd1],ar[]newint[cd2],f10,f20,qdl,f30,f40;for(intil;imid;i){az[f1]a[i];}for(intimid1;ir;i){ar[f2]a[i];}while(f3cd1f4cd2){if(az[f3]ar[f4]){a[qd]az[f3];}else{a[qd]ar[f4];}}while(f3cd1){a[qd]az[f3];}while(f4cd2){a[qd]ar[f4];}}}