------- android培训、java培训、期待与您交流! ----------
自己写了一个DataSorter类,对数组进行排序,虽然在实际开发中没什么用,但十分锻炼思维。供大家参考一下。
public class DataSorter { public static void main(String[] args) { int[] arr = {8,7,6,5,4,3,2,1}; shellSort(arr); print(arr); } public static void bubbleSort(int[] arr) { for(int i = 0; i < arr.length - 1; i++) { for(int j = 0; j < arr.length - 1 - i; j++) { if(arr[j] > arr[j + 1]) { arr[j] = arr[j] ^ arr[j + 1]; arr[j + 1] = arr[j] ^ arr[j + 1]; arr[j] = arr[j] ^ arr[j + 1]; } } } } public static void selectionSort(int[] arr) { int tmp; for(int i = 0; i < arr.length - 1; i++) { tmp = i; for(int j = i + 1; j < arr.length; j++) if(arr[tmp] > arr[j]) tmp = j; if(tmp != i){ arr[i] = arr[i] ^ arr[tmp]; arr[tmp] = arr[i] ^ arr[tmp]; arr[i] = arr[i] ^ arr[tmp]; } } } public static void insertionSort(int[] arr) { int tmp; for(int i = 0; i < arr.length - 1; i++) { tmp = arr[i+1]; for(int j = i; j >= 0; j--){ if(arr[j] > tmp) arr[j + 1] = arr[j]; else{ arr[j + 1] = tmp; break; } } } } public static void shellSort(int[] arr) { for (int group = arr.length / 2; group > 0; group /= 2){ for (int i = group; i < arr.length; i++){ for (int j = i - group; j >= 0; j -= group){ if (arr[j] > arr[j + group]){ arr[j] = arr[j] ^ arr[j + group]; arr[j + group] = arr[j] ^ arr[j + group]; arr[j] = arr[j] ^ arr[j + group]; } } } } } public static void quickSort(int[] arr){ quickSort(arr,0,arr.length - 1); } public static void quickSort(int[] arr,int start,int stop) { int tmp = arr[start],i = start,j = stop; while(i < j){ if(arr[i + 1] > tmp){ while(i < j){ if(arr[j] < tmp){ arr[i] = arr[j]; break; } else j--; } if(i < j){ i++; arr[j] = arr[i]; j--; } }else{ arr[i] = arr[i + 1]; i++; } } if(i > start) arr[i] = tmp; if(i > start + 1) quickSort(arr,start,i - 1); if(i < stop - 1) quickSort(arr,i + 1,stop); } public static void print(int[] arr) { for(int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } }
相关推荐
正在自学黑马程序员Java全套,目前只学了Javase,接下来是Javaweb,把自己整理的笔记分享一下。
黑马程序员——Android移动开发源码
黑马程序员Javaweb教材源代码,适合学习配套使用
黑马程序员,C++核心编程
黑马程序员c++配套课件 《轻松搞定c++语言》 黑马程序员c++配套课件 《轻松搞定c++语言》
Javaweb基础全课程笔记,黑马程序员上课笔记,主要涉及前端 jsp和servlet等
layui ajax 没有node.js功能都可用,高度类似。 黑马刘龙彬老师主讲的大事件项目,整体看完,给...最后,再次给黑马程序员和刘老师点个赞。 说明--ShowDoc https://www.showdoc.com.cn/escook?page_id=3707158761215217
《JavaWeb程序设计任务教程》一书源代码,中国工信出版社出版,黑马程序员编著,传智播客旗下高端教育品牌“黑马程序员”项目实战配套用书
黑马程序员入学面试题,复习必备,事半功倍。
本人参加黑马程序员考试的题目加上本人的解答!不是让谁作弊,因为题库的题目对每个人会有些许的变化。题库题目的难度很类似,就当是你参加模拟考试了!哈哈,附本人的详解的哦!
黑马程序员JavaEE49期
黑马程序员网上图书商城中的毕业设计资料,代码,数据库设计论文等
《JavaWeb程序开发进阶》-黑马程序员配套资源ppt。
Netty基础,用于学习Netty,参考黑马程序员的netty教程
月薪过万的入门必知知识,黑马程序员入学Java精华总结
B站黑马程序员Python教程学习笔记
黑马程序员入学考试题,共10道,资源中有代码和题目。
day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、...
安卓黑马程序员课表
黑马程序员 C语言提高课程配套课件 黑马程序员 C语言提高课程配套课件