本帖最后由 传奇查 于 2015-11-21 10:38 编辑
觉得对你有用就给个鼓励吧~~
数组概念和遍历:
- * 数组概念:同一种类型数据的集合,其实,数组就是一个容器.
- * 好处:可以自动给数组的元素从0开始编号,方便操作这些元素.
- * 格式1:元素类型[] 素组名 = new 元素类型[元素个数或数组长度]
- * int [] arr = new int[5];
- * 格式2:元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3,....元素n};
- * int[] arr = new int[]{3,5,7,9,0};
- * 或者int[] arr = {1,2,3,4,5,6}
- * 内存划分:1.寄存器 2.本地方法区 3.方法区
- * 4.栈内存 用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放.
- * 5.堆内存 数组和对象,通过new建立的实例都存放在堆内存中.
- * */
- public class ArrayDemo {
- public static void main(String[] args) {
- int[] arrays = {23,34,15,64,678,342,533,234,2,9,-999};
- printArrays(arrays);
- xuanZe(arrays);
- xuanZeJiaoBiao(arrays);
- bubble(arrays);
- Arrays.sort(arrays);
- printArrays(arrays);
- arrayDemo(arrays);
- getMax(arrays);
- }
- public static void arrayDemo(int[] arr){
- //int[] arr = new int[]{1,2,3,4,5};
- // System.out.println(arr);//[I@170a6001
- //[I 表示int类型的数组,@后面是该素组的初始地址哈希值
- for (int i = 0; i < arr.length; i++) {
- System.out.println(arr[i]);
- }
- }
- public static void getMax(int[] arrays){
- int max = 0;
- for (int i = 0; i < arrays.length; i++) {
- max = arrays[i] > max ? arrays[i]:max;
- }
- System.out.println(max);
- }
- //排序问题:
- //选择排序:用第一个元素依次和后面的元素做比较,确定第一位最小,然后拿第二个和后面的依次比较
- //采用选择排序--基本方法
- public static void xuanZe(int[] arr){
- for (int x = 0; x < arr.length-1; x++) {
- for (int y = x+1;y < arr.length; y++) {
- if(arr[x]>arr[y]){
- int temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- }
- }
- }
- //遍历方法
- public static void printArrays(int[] array){
- System.out.print("[");
- for (int i = 0; i < array.length; i++) {
- if( i < array.length-1){
- System.out.print(array[i]+",");
- } else {
- System.out.println(array[i]+"]");
- }
- }
- }
- //选择排序之角标记录法
- public static void xuanZeJiaoBiao(int[] arrays){
- for (int i = 0; i < arrays.length-1; i++) {
- int index = i;
- int min = arrays[i];
- for(int j = i+1 ; j<arrays.length;j++){
- if(arrays[j]<min){
- min = arrays[j];//获取到本循环数组最小值min
- index = j;//本循环结束后获取到整个数组最小值的索引j
- }
- if(i != index){
- replace(arrays,i,index);
- }
- }
- }
- }
- //替换arrays[i]
- public static void replace(int[] arrays,int i,int index){
- int temp = arrays[i];
- arrays[i] = arrays[index];
- arrays[index] = temp;
- }
- //冒泡排序:第一轮:从第一个元素到倒数第二个元素依次向右比较,把最大数挪到最右边.
- // 第二轮:从第二个元素到倒数第三个元素依次向右比较,把第二大数挪到倒数第二.
- public static void bubble(int[] arr){
- for (int j = 0; j < arr.length-1; j++) {
- for (int i = 0; i < arr.length-j-1; i++) {
- if(arr[i]>arr[i+1]){
- int temp = arr[i];
- arr[i] = arr[i+1];
- arr[i+1] = temp;
- }
- }
- }
- }
- }
复制代码 输出结果:
程序运行的结果为: [23,34,15,64,678,342,533,234,2,9,-999]
[-999,2,9,15,23,34,64,234,342,533,678]
-999
2
9
15
23
34
64
234
342
533
678
678 觉得对你有用就给个鼓励吧~~
|